mysql where语句没有显示正确的结果

时间:2015-03-01 03:19:38

标签: php mysql where

我有一个包含2条记录的数据库:

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

我尝试做的是,如果用户字段为空,则会向所有用户显示该消息,如果列出了用户名(,例如此示例中的管理员),它显示该用户的一个,如果存在则显示空白消息。

现在,如果用户是Pam它应该只显示ID 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>';
  }

?>

2 个答案:

答案 0 :(得分:1)

发现我的问题@Fred-ii-这是一个骨头错误我忘了饼干只在第二页加载后设置!!!

感谢您的帮助!

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


        ?>

答案 1 :(得分:0)

更改此行:

$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='')");