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

(Ответов: 3, Просмотров: 1781)
  1. Новичок
    • Регистрация: 13.02.2012
    • Сообщений: 20
    • Репутация: 0
    Здравствуйте, хотелось бы уточнить некоторые детали. Условно есть некий сайт с новостями, нужно сделать удаление новостей через сайт. Для этого делаем страницу где нам выводит название всех новостей и рядом с название радиокнопка чтобы выбрать какую новость удалить. Естественно по одной новости удалять нецелесообразно, надо осуществить удаления группами. Для этого можно сделать вместо радиокнопок флажки, но тогда как написать обращение к базе для удаления? Как я понял нельзя сразу, одним махом, удалить несколько записей из БД, но можно их удалять по одной в цикле. Вот алгоритм который мне удалось придумать по удалению нескольких новостей из БД, поправьте если не так:
    1.Посчитать количество флажков.
    2.Создать массив и занести туда идентификаторы удаляемых новостей ( $POST [ 'id' ] ).
    3.Удалять в цикле новость с перебором id.
    Единственное что мне тут не нравится это количество запросов к базе, если их например больше 500, то нагрузка увеличивается.
    • 0
  2. Гуру Аватар для assai
    • Регистрация: 11.08.2011
    • Сообщений: 794
    • Репутация: 360
    Можно к примеру и не использовать циклы.
    К примеру будет у вас список статей с чек боксом, где в значении будет их id
    PHP код:
    <input type="checkbox" name="content[]" value="'.$content['id'].'" /> 
    при отправки формы, все переменный должны попасть в массив post его можно преобразовать используя функцию implode(), чтобы потом запихнуть в запрос к бд.

    PHP код:
      $id implode','$_POST['content'] );
      
    $query 'DELETE FROM items WHERE id IN ('.$id.')';
      
    mysql_query$query ); 
    т.е. в идоге мы получим sql запрос такой:
    PHP код:
    DELETE FROM items WHERE id IN (1414456 
    как-то так, возможно где то и ошибки допустил, но суть думаю ясна.
    • 2

    Спасибо сказали:

    easymisc(19.02.2012), na9ort(19.02.2012),
  3. Квадрат, такой кубический Аватар для quadrat
    • Регистрация: 19.09.2011
    • Сообщений: 427
    • Репутация: 74
    • Webmoney BL: ?
    Цитата Сообщение от assai Посмотреть сообщение
    DELETE FROM items WHERE id IN (1, 4, 14, 456 )
    вместо цифр можно * сделать, тогда все записи сотруться. а так правильно все вроде
    • 0
  4. Дипломник
    • Регистрация: 06.06.2011
    • Сообщений: 105
    • Репутация: 11
    зачем вместо цифр звездочку? ведь задача как раз удалить выбранные а не все...

    assai, всё верно расписал!
    единственное видимо надо добавить проверку $_POST['content'] на правильные значения
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
прогон хрумером для поднятия нескольких СЧ запросов
Регистрация, поднятие ТИЦ 3 14.01.2012 20:25
Как транслировать с нескольких сайтов на один?
Прочее 6 24.07.2011 19:38
Вывод нескольких категорий в drupal
Web программирование 4 20.07.2011 19:50
Присвоение нескольких регионов через яндекс каталог
Вопросы от новичков 4 29.03.2011 09:54
Продвижение сайта с помошью нескольких домейнов?
Общие вопросы поисковой оптимизации 3 08.02.2011 17:54

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры