如何设置,然后在更新时只运行两次?

时间:2013-07-25 06:58:47

标签: php mysql

这个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 ");
        }

    }   
}

我喜欢,当选择页面时,如果选择更多页面,甚至只是让它更新两次? 我尝试order by user_id limit 2或简单limit 2,但这不起作用。

2 个答案:

答案 0 :(得分:1)

只需按

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

没有必要在循环中进行。

答案 1 :(得分: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++;
    }
}