我有一个数据库,里面有两条记录:
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='')");