我想检查每一行的mysql表的一个字段的特定值php


I want to check every row of a mysql table for a specific value of a field by php

我有一个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";
}

在此代码中,如果插入的最后一行有$email=$email3,则if命令执行成功并打印UNPLUS,但如果$email=$email3在除最后一行之外的任何其他行中为真,则命令执行失败并打印PLUS。

请告诉我出了什么问题。

注意:$_SESSION['email']是另一个表的email字段的值,该值由当前登录的用户提供。

您的while()正在获取所有行并将其分配给变量…然后不对这些数据做任何事情,直到循环结束。这意味着你正在取任意多行,并且丢弃除最后一行以外的所有数据。

您需要将if ($email ...)检查移动到while()循环中:

while($row = mysql_fetch_array($resultplus) {
   ... assign variables ...
   if ($email == $email3) {
      yada yada
   } else {
      yada yada
   }
}

Try

$queryplus="SELECT * FROM comments WHERE id='".mysql_real_escape_string($id)."' and email='".mysql_real_escape_string($_SESSION['email']."' and comment='plus'";