1
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

4 回答 4

3

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

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

然后将 $update 添加到您的查询中。希望这可以帮助。

于 2013-07-24T09:23:11.910 回答
3

第一的!

请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

说真的,您的代码包含一个称为SQL 注入的严重漏洞。如果您不修复它,您的网站很容易受到攻击


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

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

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

于 2013-07-24T08:53:25.780 回答
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'  ");
                            }

                                                }   
                            }

                        }
                        }
于 2013-07-24T17:44:46.767 回答
0

尝试 $_SESSION 变量,例如:

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
}
于 2013-07-24T09:00:51.863 回答