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

mysql_affected_rows()while ループの前に使用する

于 2013-09-26T06:53:35.827 に答える
0

あなたのコードはインデントされておらず、わずかに判読できませんが、問題は while ループで代入していることにあるようです。これを使うべきだと思います。

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

$search_assign_user_idコードがwhile ループに入らないため、エラーは表示されませ 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';
}
于 2013-09-26T06:52:44.800 に答える