得到一个问题,如果行等于0,则不调用else语句。如果我在站点上键入正确的详细信息,则满足第一个条件并显示xml,但是如果输入了错误的详细信息,则不显示错误的xml。

echo "<users>";
$result = mysql_query("SELECT * FROM `numbers` WHERE `email` = '".$email."' AND `password` = '".$password."'") or die('Invalid query: ' . mysql_error());

if (!$result) die('Invalid query: ' . mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    if(mysql_num_rows($result) != 0)
    {
        echo "<usercallback>";
        echo  "<id>".$row['id']."</id>";
        //echo  "<number>".$row2['number']."</number>";
        //echo  "<gender>".$row2['gender']."</gender>";
        //echo  "<relationship>".$row2['relationship']."</relationship>";
        echo  "</usercallback>";
    }
    else
    {
        echo "<usercallback>";
        echo  "<id>error</id>";
        echo  "</usercallback>";
    }
}

echo "</users>";

最佳答案

实际上,您必须将if mysql num_行检查放在while块之外

echo "<users>";
$result = mysql_query("SELECT * FROM `numbers` WHERE `email` = '".$email."' AND `password` = '".$password."'") or die('Invalid query: ' . mysql_error());


if(mysql_num_rows($result) != 0)
    {
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
        {
        echo "<usercallback>";
        echo  "<id>".$row['id']."</id>";
        //echo  "<number>".$row2['number']."</number>";
        //echo  "<gender>".$row2['gender']."</gender>";
        //echo  "<relationship>".$row2['relationship']."</relationship>";
        echo  "</usercallback>";
        }
    }
    else
    {
        echo "<usercallback>";
        echo  "<id>error</id>";
        echo  "</usercallback>";
    }

echo "</users>";

关于php - PHP Mysql If语句不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7174978/

10-09 00:44
查看更多