mysqlwhere语句没有显示正确的结果


mysql where statement not displaying proper results

我有一个数据库,里面有两条记录:

id |  message  |    date     |   user    | option
---+-----------+-------------+-----------+--------
1  |  Welcome  |  2015-03-01 |           |   0
2  |  message  |  2015-03-05 |  admin    |   0

我想做的是,如果用户字段为空,它会向所有用户显示消息,如果列出了用户名(,如本例中的admin),它会显示该用户的用户名,如果存在,则会显示空白消息。

现在,如果用户是Pam,它将显示这两条消息(它应该只显示id 1)。

如果用户是admin,则会同时显示这两条消息。

它似乎忽略了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>';
  }
?>

发现我的问题@Fred-ii-那是一个严重的错误,我忘记了cookie是在第二页加载后才设置的!!!

谢谢你的帮助!

<?php 
        ini_set('display_errors',1);  error_reporting(E_ALL);
        echo $zuser=$_GET['usrname'];

    $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>';
                }

        ?>

更改此行:

$result = mysqli_query($con,"SELECT * FROM message WHERE (user = '$zuser' OR run_date >= CURDATE() AND user='')");

至:

$result = mysqli_query($con,"SELECT * FROM message WHERE user = '$zuser' OR ( run_date >= CURDATE() AND user='')");