За последние 24 часа нас посетили 18013 программистов и 1650 роботов. Сейчас ищут 1304 программиста ...

Удаление нескольких записей по checkbox

Тема в разделе "PHP и базы данных", создана пользователем 0281, 5 май 2008.

  1. 0281

    0281 Активный пользователь

    С нами с:
    5 май 2008
    Сообщения:
    5
    Симпатии:
    0
    На странице выводится записи из таблицы, каждой записи соответсвует чекбокс. Так же на форме есть кнопка удаления. При выборе определенных записей (нужные выделяются галками на чекбоксах) и нажатии кнопки удалить происходит удаление записей из таблицы. Скрипт, который я привел ниже работает, но при удалении возникает следующая запись:
    Notice: Undefined offset: здесь указано число записей в массиве (в зависимости от кол-ва выбранных записей) in T:\home\localhost\servers\delsrv.php on line (номер строки, он у меня соответсвует строке с while ($array[$i]) )
    Помогите пожалуйста разобраться в чем проблема, а то вечер уже, а я никак врубиться не могу

    Код (Text):
    1.  
    2. $sql = "select * from servers order by servers_id";
    3. $result = @mysql_query($sql, $connection);
    4.  
    5. echo "<table>";
    6.  
    7. while ($row = @mysql_fetch_array($result))
    8. {
    9. $servers_id = $row['servers_id'];
    10. $host_name = substr($row['host_name'],0,30);
    11. echo "<tr>
    12. <td>$host_name</td>
    13. <td><input type='checkbox' name='servers[]' value='$servers_id'></td>
    14. </tr>";
    15. }
    16.  
    17. echo "<tr>
    18. <td class='text' colspan='2'><input type='submit' class='button' value='Удалить' name='delete'></td>
    19. </tr>
    20.  
    21. </table>";
    22.  
    23. if(isset($_POST['servers'])&&isset($_POST['delete']))
    24. {
    25. $array = $_POST['servers'];
    26. $i = 0;
    27. while ($array[$i])
    28. {
    29. $sql = "DELETE FROM servers WHERE servers_id = '$array[$i]'";
    30. $result = @mysql_query($sql, $connection);
    31. $i++;
    32. }
    33. }
    :(
     
  2. Anonymous

    Anonymous Guest

    Код (Text):
    1. $i = 0;
    2. while ($array[$i])
    3. {
    4. $sql = "DELETE FROM servers WHERE servers_id = '$array[$i]'";
    5. $result = @mysql_query($sql, $connection);
    6. $i++;
    7. }
    8. }
    меняем на
    PHP:
    1. <?
    2. $sql = "DELETE FROM servers WHERE servers_id in ('".implode("','",$array)."')";
    3. @mysql_query($sql, $connection);
    4.  
    И идем пить пиво, поминая меня добрым словом.
     
  3. 0281

    0281 Активный пользователь

    С нами с:
    5 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Спасибо друх!!! Ура тебе!!! Все заработало!!! :D :D :D