[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: условие выполняется
tureg1
$q = mysql_query("SELECT * FROM `kupons` WHERE `kod` = '$number' AND `used` = 'n'"); 
$r = mysql_fetch_array($q);
if(!$r){

$query_r_na = "UPDATE `kupons` SET `used`='y' WHERE `kod`='$number'";
$result_r_na=mysql_query($query_r_na);

$query_chi = "INSERT INTO `$table` VALUES ('NULL', '$rubrika', '$timeHN:$timeI', '$dateT.$datem', '$mess', '$phone', 'vip', '$now')";
$result_chi=mysql_query($query_chi);

echo "<center><br><br><br><br><br><br><br>

<font face=verdana size=4><i>Ваше сообщение успешно добавлено<br>
$number</i></font></center>";

} else {


echo "<center><br><br><br><br><br><br><br>

<font face=verdana size=4><i>Вы ввели недействительный купон, возможно он уже был использован</i></font></center>"
;

}


Возможно я не правильно задал само условие, но дело в том, что в таблице kupons нет такой строки которая бы удовлитворяла условию, то есть нет такой строки в которой бы была и переменная $number и поле used имело значение "n". Однако условие выполняется и выполняется код из первого блока. Почему так? Где ошибка?
Lumix
Все правльно условие выполняется потомучто в $r ничего нет, в условии же написано если не существует $r ..if(!$r).. то выполнить блок....

может так поробовать

$q = mysql_query("SELECT * FROM `kupons` WHERE `kod` = '$number' AND `used` = 'n'");

if(mysql_num_rows($q) > 0) {

$query_r_na = mysql_query("UPDATE `kupons` SET `used`='y' WHERE `kod`='$number'");

$query_chi = mysql_query("INSERT INTO `$table` VALUES ('NULL', '$rubrika', '$timeHN:$timeI', '$dateT.$datem', '$mess', '$phone', 'vip', '$now')");


echo "<center><br><br><br><br><br><br><br>
<font face=verdana size=4><i>Ваше сообщение успешно добавлено<br>
$number</i></font></center>";

} else {

echo "<center><br><br><br><br><br><br><br>
<font face=verdana size=4><i>Вы ввели недействительный купон, возможно он уже был использован</i></font></center>"


}
tureg1
Да, ты абсолютно прав, спс smile.gif
sergeiss
По-моему, тут еще "select *" лишнее в самом начале. Зачем выбирать данные, если нужен только сам факт их наличия/отсутствия? Считай их "select count(*) ....", это будет более правильно.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
kaww
запрос
SELECT * FROM `kupons` WHERE `kod` = '$number' AND `used` = 'n'

только для проверки по условию? тогда лучше так
SELECT id FROM `kupons` WHERE `kod` = '$number' AND `used` = 'n' limit 1
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.