-3

このSQL:

if($_POST['adat']){
    mysql_query("UPDATE pages SET page_value = '0' WHERE user_id = '$_SESSION[user_id]' ");


    foreach($_POST['page_ids'] as $page){
        $pa = $page;

        if ($pa){
            mysql_query("UPDATE pages SET page_value = '1' WHERE user_id = '$_SESSION[user_id]'  AND page_id = '$page'  LIMIT 2 ");
        }

    }   
}

私はそれが好きです、ページを選択したときに、それ以上のページを選択した場合でも、それを 2 つの更新にできますか? order by user_id limit 2、または simpleを試してみlimit 2ましたが、これは機能しません。

4

2 に答える 2

1

制限の代わりに

if($_POST['adat']){
    mysql_query("UPDATE pages SET page_value = '0' WHERE user_id = '$_SESSION[user_id]' ");


    foreach($_POST['page_ids'] as $page){
        $pa = $page;

        if ($pa){
            mysql_query("UPDATE pages SET page_value = '1' WHERE user_id = '$_SESSION[user_id]'  AND page_id = '$page'  LIMIT 2 ");
        }

    }
}

ループの後ろで break キーワードを使用するだけです

if($_POST['adat']){
    mysql_query("UPDATE pages SET page_value = '0' WHERE user_id = '$_SESSION[user_id]' ");

    $i=1;
    foreach($_POST['page_ids'] as $page){
        $pa = $page;

        if ($pa){
            mysql_query("UPDATE pages SET page_value = '1' WHERE user_id = '$_SESSION[user_id]'  AND page_id = '$page'");
        }
     if($i>=2){
        break;
     }  
     $i++;
    }
}
于 2013-07-25T07:11:32.920 に答える
1

単にそれを行う

mysql_query("UPDATE pages SET page_value = '1' WHERE user_id = '$_SESSION[user_id]'  AND page_id FIND_IN_SET($_POST['page_ids'])");

ループで行う必要はありません。

于 2013-07-25T07:03:42.543 に答える