0

我有下面的代码从数据库中检索行,但是如果我在“assign_id_input”中输入数据库中不存在的 id,它将不会执行 else 语句并显示“错误”。

$assign_id_input = $_POST['assign_id_input'];

$search_assign_user_id = mysql_query("SELECT * FROM free_ebook WHERE useid = $assign_id_input;")or die(mysql_error());

while($assign_user_id_array = mysql_fetch_array($search_assign_user_id, MYSQL_ASSOC)) {
    $filtered_assign_user_id_array = array_filter($assign_user_id_array);

    if(count($filtered_assign_user_id_array) > 0) {
        echo 'No Error';
    }
    else{
        echo 'Error';
    }
}
4

3 回答 3

0

您的代码没有缩进,并且有点难以阅读,但在我看来,问题在于您在 while 循环中进行分配。我认为你应该使用这个。

while($assign_user_id_array == mysql_fetch_array($search_assign_user_id, MYSQL_ASSOC)) {
于 2013-09-26T06:48:22.600 回答
0

mysql_affected_rows()在你的while循环之前使用

于 2013-09-26T06:53:35.827 回答
0

未显示您的错误,因为您的代码从未进入 while 循环,因为其中 $search_assign_user_id有 0 行,所以mysql_fetch_array()将 return FALSE

您应该检查mysql_num_rows()您的查询是否返回任何行,然后您可以进入您的 while 循环。

$assign_id_input = $_POST['assign_id_input'];

$search_assign_user_id = mysql_query("SELECT * FROM free_ebook WHERE userid = $assign_id_input;")or die(mysql_error());

if (mysql_num_rows($search_assign_user_id) > 0) {

    while($assign_user_id_array = mysql_fetch_array($search_assign_user_id, MYSQL_ASSOC)) {
        $filtered_assign_user_id_array = array_filter($assign_user_id_array);
        echo 'No Error';
    }
} else {
    echo 'Error';
}
于 2013-09-26T06:52:44.800 回答