Войти

Показать полную графическую версию : [решено] проверка с применением сравнение - PHP


cibin
04-01-2016, 09:42
Мне нужно сделать проверку путём сравнение.
Теперь по подробнее:
Есть таблица 1 и таблица 2.
Есть форма которая должна добавлять запись в таблицу2:
<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". загвозка в том что мне нужно проверить можем ли мы вычитать!? Т.е. нужно сделать проверку типа такого:

<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 ) > 0 )
{
echo "Столько товара на складе нет, просьба указать другое количество!";
}
else
{
echo "Количество подходит";
}
?>

</body>

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

mar
04-01-2016, 16:06
SELECT * FROM `sklad` WHERE and kolich < kolich_prod »
такой запрос к mysql вообще должен выдавать ошибку СУБД (попробуйте сам запрос без PHP)

cibin
05-01-2016, 10:56
такой запрос к mysql вообще должен выдавать ошибку СУБД (попробуйте сам запрос без PHP) »


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

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

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


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

Iska
07-01-2016, 07:43
Вы уверены, что идёт сравнение чисел, а не строк?

cibin
07-01-2016, 19:46
Вы уверены, что идёт сравнение чисел, а не строк? »


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




© OSzone.net 2001-2012