У меня есть база данных, которая имеет 2 записей в нем:MySQL, где оператор не отображает правильные результаты
id | message | date | user | option
---+-----------+-------------+-----------+--------
1 | Welcome | 2015-03-01 | | 0
2 | message | 2015-03-05 | admin | 0
То, что я пытаюсь сделать, если поле пользователя пустым, он показывает сообщение всем пользователям , если есть имя пользователя (, например, admin в этом примере), оно показывает одно для этого пользователя и пустое сообщение, если оно существует.
В настоящий момент он отображает оба сообщения, если пользователь Pam
(должен показывать только идентификатор 1).
Если пользователь является администратором, он отображает оба сообщения.
Похоже, его игнорирование user = '$zuser'
Что я делаю неправильно?
<?php
ini_set('display_errors',1); error_reporting(E_ALL);
$zuser=$_COOKIE['aauser'];
$result = mysqli_query($con,"SELECT * FROM message WHERE (user = '$zuser' OR run_date >= CURDATE() AND user='')");
while($quick = mysqli_fetch_array($result))
{
echo $quick['message'];
echo '<script>alert("'.$quick['message'].'");</script>';
}
?>
Запустите var_dump в файле cookie, удостоверившись, что он установлен/не пуст. Также 'или die (mysqli_error ($ con))' to 'mysqli_query()' –
также существует разница между 'null' и' '' (пустая строка) ' – Ghost
Вы также можете попробовать удалить скобки =>' (пользователь = '$ zuser' ИЛИ run_date> = CURDATE() AND user = '') '<=, делая то, что сказал Ghost. –