我想通过php检查mysql表的每一行是否有特定的字段值

Mud*_*ser -2 php mysql

我有一个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']是另一个表的电子邮件字段的值,该表具有此刻登录的用户提供的值.

Mar*_*c B 5

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)