我有一个MySql表.我想检查所有行中的特定字段.如果此字段在任何行中都有特定值,我希望PHP打印一些东西,如果任何行没有该值,那么我希望PHP做其他事情.
看看这段代码:
$queryplus="SELECT * FROM comments WHERE id='$id' and comment='plus'";
$resultplus=mysql_query($queryplus) or die(mysql_error());
while($rowplus = mysql_fetch_array($resultplus))
{
$email3=$rowplus['email'];
$fname3=$rowplus['fname'];
$lname3=$rowplus['lname'];
$email=$_SESSION['email'];
}
if ($email==$email3)
{
echo "UNPLUS";
}
else
{
echo "PLUS";
}
Run Code Online (Sandbox Code Playgroud)
在此代码中,如果插入的最后一行具有$ email = $ email3,则if命令成功执行并打印UNPLUS,但如果$ email = $ email3在除最后一行之外的任何其他行中为true,则命令无法执行,打印PLUS.
请告诉我它有什么问题.
注意:$ _SESSION ['email']是另一个表的电子邮件字段的值,该表具有此刻登录的用户提供的值.
您while()正在获取所有行并将它们分配给变量...然后不对该数据执行任何操作,直到循环结束.这意味着您正在获取多行,并且除了最后一行的数据之外,它们都会消失.
您需要if ($email ...)在while()循环内移动检查:
while($row = mysql_fetch_array($resultplus) {
... assign variables ...
if ($email == $email3) {
yada yada
} else {
yada yada
}
}
Run Code Online (Sandbox Code Playgroud)