如何根据MySQL表格单元格的值进行IF语句?

时间:2010-03-30 16:36:15

标签: php mysql

如何根据mysql表格单元格的值执行if语句。例如,我有一个名为marital_status列的人员表。此列具有以下两个值之一:是或否。但这不起作用:

$query = mysql_query("SELECT marital_status FROM people WHERE first_name = 'John'");

while ($row = mysql_fetch_assoc($query)) {

     $maritalStatus = $row['marital_status'];

}

if ($maritalStatus == "yes") {
   echo "This person is married.";
}
else {
   echo "This person is NOT married.";
}

$ maritalStatus ==“yes”不会返回true,即使这正是该单元格中的值。

2 个答案:

答案 0 :(得分:4)

如果你想处理SQL查询返回的每一行数据,你应该把你的条件放在while循环中 - 它遍历执行查询返回的行:

$query = mysql_query("SELECT marital_status FROM people WHERE first_name = 'John'");

while ($row = mysql_fetch_assoc($query)) {
    $maritalStatus = $row['marital_status'];
    if ($maritalStatus == "yes") {
       echo "This person is married.";
    }
    else {
       echo "This person is NOT married.";
    }
}


如果这没有帮助,检查:

可能很有用
  • 如果查询实际返回结果
  • 如果这些结果实际上是您认为的那样。

这可以使用var_dump来完成,以转储变量的内容。例如,在您的情况下,您可以使用:

$query = mysql_query("SELECT marital_status FROM people WHERE first_name = 'John'");
while ($row = mysql_fetch_assoc($query)) {
    var_dump($row);     // Will display the content of $row
}



作为旁注,你在评论中说回到$ maritalStatus会让你Yes

如果您的数据库中有大写Y,那就是您的代码失败的原因:您正在测试小写的“yes”。

在PHP中,使用==运算符进行字符串比较,大写字母和小写字母被视为不同的字符

如果您想以不区分大小写的方式进行比较,则必须:

答案 1 :(得分:1)

您应该在if循环内移动while块 并确保你考虑信件案件。

$query = mysql_query("SELECT marital_status FROM people WHERE first_name = 'John'");

while ($row = mysql_fetch_assoc($query)) {

     $maritalStatus = strtolower($row['marital_status']);

    if ($maritalStatus == "yes") {
      echo "This person is married.";
    }
    else {
      echo "This person is NOT married.";
    }
}