选中Php复选框,然后mysql更新1,如果没有检查mysql update 0

时间:2013-07-24 08:48:29

标签: php mysql

echo "<form method='POST' action=''><br>";
$query = mysql_query("set names 'utf8'");
$query = mysql_query("
  SELECT * FROM pages WHERE user_id = '$_SESSION[user_id]'
") or die(mysql_error());

while($pagek = mysql_fetch_array($query)) {
  $name = $pagek['page_name'];
  $pageid = $pagek['page_id'];
  echo '<input type="checkbox" name="page_ids[]" value="'.$pageid.'">'
      .$name
      ."<br>";
}

echo "<br>
      <input type='submit'
             value='Adatok frissítése'
             name ='adat'
             class='button small radius center black'
      >";
echo "</form>";

foreach($_POST['page_ids'] as $page){
  if ($page){
    mysql_query("
      UPDATE pages
      SET    page_value = '0'
      WHERE  user_id = '$_SESSION[user_id]'
    ");
    mysql_query("
      UPDATE pages
      SET    page_value = '1'
      WHERE  user_id = '$_SESSION[user_id]'
         AND page_id = '$page'
    ");
  }
}

我喜欢,然后如果选中了哪个复选框,则此mysql更新1,并且大于0。

这段代码不好,这里只有一个网站更新,其余的都是零,你可以随时选择一个网站

4 个答案:

答案 0 :(得分:3)

<强>首先!

  

Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

说真的,您的代码包含一个名为 SQL Injection 的严重漏洞。如果您不修复它,您的网站可能会 很容易受到损害。


未选中复选框根本无法提交。所以基本上,你的服务器什么都看不到。

要考虑到这一点,您应该做的是默认情况下将其设置为0 ,无条件地然后,如果选中该复选框,则将其设置为1。

是的,它确实要求您在请求中进行2次查询,但这是确保获得所需结果的唯一方法。

答案 1 :(得分:2)

您可以使用isset()查看是否已选中该复选框。

if(isset($_POST['checkbox']))
{
    $update = 1;
}
else
{
    $update = 0;
}

然后在查询中添加$ update。希望这会有所帮助。

答案 2 :(得分:0)

尝试$ _SESSION vars,如:

UPDATE pages SET page_value = '0' WHERE user_id = {$_SESSION['user_id']}
UPDATE pages SET page_value = '1' WHERE user_id = {$_SESSION['user_id']} AND page_id = '$page'  

使用mysql_real_escape_string获得更高的安全性:

$pages = mysql_real_escape_string(serialize($_POST['page_ids']));

foreach($pages as $page) {
   // action
}

答案 3 :(得分:0)

在正确的解决方案中解决任务:

  echo "<form method='POST' action=''><br>";
    $query = mysql_query("set names 'utf8'");
    $query = mysql_query("SELECT * FROM pages WHERE user_id = '$_SESSION[user_id]'  ") or die(mysql_error());
    if(mysql_num_rows($query) == 0) {
            echo "<tr><td colspan=\"3\">Nincs megjeleníthető Facebook oldalad! Kérlek jelentkezz be az FB Login menüpont alatt!</td></tr>";
        } else {
            echo "<u>Kérem válassza ki melyik oldalaira szeretne képet feltölteni!</u><br><br><br>";

            while($pagek = mysql_fetch_array($query)) {
                $name = $pagek['page_name'];
                $pageid = $pagek['page_id'];
                 echo '<input type="checkbox" name="page_ids[]" value="'.$pageid.'">'.$name."<br>"; 

                                            }           

            echo "<br><input type='submit' value='Adatok frissítése' name ='adat' class='button small radius center black'>";


            echo"</form>";




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

                                                }   
                            }

                        }
                        }