PHP для ошибки цикла Неопределенное смещение - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть код ниже, который проходит через выбранные флажки и выполняет и оператор SQL.

if (isset($_POST['delete']))
{
   for($i=0;$i<$recordcount;$i++)                       
   {                        
       $deleteid = isset($_POST['checkbox'][$i]);
       echo "ID = ".$deleteid."<br />"; //Error checking
       $sqldelete = "DELETE FROM customer WHERE cus_ID = ".$deleteid."";
       echo $sqldelete."<br />"; //Error checking
       $deleters = $conn->Execute($sqldelete);                  
   }
}

Это запускает запрос SQL, но он пытается выполнить его еще раз, чем требуется, то есть я отмечаю два флажкаsql работает 3 раза.Так что это приводит к ошибке, так как идентификатор пуст.Я также получаю неопределенное смещение 1.

Любой совет?Благодарю.

Ответы [ 3 ]

3 голосов
/ 08 декабря 2010

Эта строка определенно неверна:

$deleteid = isset($_POST['checkbox'][$i]);

Может, ты это имел в виду?

$deleteid = isset($_POST['checkbox'][$i]) 
    ? intval($_POST['checkbox'][$i]) : false;
if ($deleteid === false) {
    continue;
}

// rest of the code follows

Кроме того, вы, вероятно, могли бы избавиться от $recordcount и сделать foreach над $_POST['checkbox'].

2 голосов
/ 08 декабря 2010
if (isset($_POST['delete']))
{
   for($i=0;$i<$recordcount;$i++)                       
   {                        
       $deleteid = isset($_POST['checkbox'][$i]);
       if ($deleteid) {
          $sqldelete = "DELETE FROM customer WHERE cus_ID = ".$_POST['checkbox'][$i];
          echo $sqldelete."<br />"; //Error checking
          $deleters = $conn->Execute($sqldelete);                  
       }
   }
}

И избежать вашего ввода для безопасности

0 голосов
/ 08 декабря 2010

попробуйте

if(isset($_POST['delete']))
    {
       $i=0;
        foreach($_POST['checkbox'] as $user)
        {
            $sqldelete = "DELETE FROM customer WHERE cus_ID = ".$user."";
           echo $sqldelete."<br />"; //Error checking
         $deleters = $conn->Execute($sqldelete); 
            $i++;
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...