发出else语句

时间:2013-09-26 06:41:43

标签: php mysql

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

$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';
    }
}

3 个答案:

答案 0 :(得分:0)

你的代码没有缩进,稍微不可读,但在我看来问题是你在while循环中分配。我认为你应该使用它。

while($assign_user_id_array == mysql_fetch_array($search_assign_user_id, MYSQL_ASSOC)) {

答案 1 :(得分:0)

您的错误未显示,因为您的代码永远不会进入while循环,因为 $search_assign_user_id中有0行,因此mysql_fetch_array()将返回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';
}

答案 2 :(得分:0)

在while循环之前使用mysql_affected_rows()