Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] проверка с применением сравнение - PHP (http://forum.oszone.net/showthread.php?t=309932)

cibin 04-01-2016 09:42 2590947

проверка с применением сравнение - PHP
 
Мне нужно сделать проверку путём сравнение.
Теперь по подробнее:
Есть таблица 1 и таблица 2.
Есть форма которая должна добавлять запись в таблицу2:
PHP код:

<body>
 
<style type="text/css">
 
</style>
 
<?php 
 
require_once "bdconnect.php";
require_once 
"zashita.php";
mysql_query("SET NAMES cp1251");
 
$edit mysql_fetch_object(mysql_query("SELECT * FROM `prodazha_1` WHERE id_prodazha_1 = '$id_prodazha_1' "));
 
 
?>
 
<table cellspacing="0" border="0">
    <tr>
        <td height="20" align="left"><b><font color="#000000">Добавить товар в открытый день от  <u><?php echo $edit->data_prodazhi_1;?></u></font></b></td></table>
        
<form action="<?php echo "insert_tovar.php?id_prodazha_1=$id_prodazha_1" ?>" method="post" name="form">
 <h1><strong><em>Выберете код товара</em></strong></h1>
 
  <table width="1" border="1">
  <tr>
        <td><strong>Код товара</strong></td>
        <td><select name="kod" id="kod">
        <?php 
    
require_once "bdconnect.php";
    
mysql_query("SET NAMES cp1251");
                
$sSQL_tar="SELECT * FROM sklad ORDER by kod ASC";
                
$result_tar=mysql_query($sSQL_tar$link);
                
                if (
mysql_num_rows($result_tar) == 0)  echo"Результат запроса : 0";else
           if (
mysql_num_rows($result_tar) > 0
                 while ( 
$row_tar mysql_fetch_array($result_tar) ):
                
?>
            <option value="<?php echo $id=$row_tar["id"];?>"><?php echo $row_tar["kod"];?></option>
            <?php endwhile ;?>
    </select></td>
    </tr>
    <tr>
    <td><div align="left"><strong>Количество продано</strong></div></td>
    <td><input name="kolich_prod" type="text" value="" size="15" maxlength="50" /></td>
  </tr>
     </table>
<p>
  <input type="submit" name="create" value="Добавить" />
</p>
 
</form>  
 
</body>

Далее по затее файл insert_tovar.php должен одновременно и добовлять запись в таблицу 2 и обновлять запись ячейки таблицы 1 с учётом вычитания заданной цифры из поле формы "kolich_prod". загвозка в том что мне нужно проверить можем ли мы вычитать!? Т.е. нужно сделать проверку типа такого:

PHP код:

<body>
<?php
require_once "bdconnect.php";
require_once 
"zashita.php";
mysql_query("SET NAMES cp1251");
//$edit = mysql_fetch_object(mysql_query("SELECT * FROM `prodazha_1` WHERE id_prodazha_1 = '$id_prodazha_1' "));
 
    
$query mysql_query(("SELECT * FROM `sklad` WHERE and kolich < kolich_prod"), $link);
    echo(
$query);
    
    if( @
mysql_num_rows$query ) > )
    {
        echo 
"Столько товара на складе нет, просьба указать другое количество!";
    }
    else
    { 
    echo 
"Количество подходит";
}
?> 
 
</body>

Но он каждый раз выдаёт "Количество подходит", хотя так не должно быть.
Допустим в таблице 2 есть запись строки где ячейка количество = 2, я указываю в форме 3 он говорит что он меньше!
Я где то сделал ошибку но не могу найти его!

mar 04-01-2016 16:06 2591088

Цитата:

Цитата cibin
SELECT * FROM `sklad` WHERE and kolich < kolich_prod »

такой запрос к mysql вообще должен выдавать ошибку СУБД (попробуйте сам запрос без PHP)

cibin 05-01-2016 10:56 2591259

Цитата:

Цитата mar
такой запрос к mysql вообще должен выдавать ошибку СУБД (попробуйте сам запрос без PHP) »


Да действительно такая ошибка была я его устранил, но это не помогло!
Это я действительно проглядел.
Спасибо!

А так же заметил что форму надо было мне передовать не post-Ом а get-ом но и это помогает, что-то ещё упускаю!

cibin 07-01-2016 07:07 2591959

Я нашел ошибки и исправил, всё работает но столкнулся с одной проблемой!
оказывается он не видит 2-х значные и более числа как одно целое.
Т.е. когда сравнивает допустим с числом 27, он сравнивает с 2, но то что это не 2 а 27 он не видит!


Если быть по точнее то в таблице стоит запись 3, надо сравнивать с этой цифрой.
Я указываю цифры от 4-9 скрипт говорит что указанная цифра больше чем в таблице (3-ки).
Если укажу от 10-39 он говорит что они меньше чем 3, как так?
И как можно выйти из этой ситуации?

Iska 07-01-2016 07:43 2591961

Вы уверены, что идёт сравнение чисел, а не строк?

cibin 07-01-2016 19:46 2592161

Цитата:

Цитата Iska
Вы уверены, что идёт сравнение чисел, а не строк? »


Вопрос решил, я те которые сравниваю перевёл в тип integer и всё заработало!


Время: 07:25.

Время: 07:25.
© OSzone.net 2001-