• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Мультиудаление Строк В Mysql

  • Автор темы BlackShadow
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

BlackShadow

знаю, что есть конструкция DELETE FROM mytable WHERE id IN 1,2,6. Как её правильно использовать? И если у меня mytable записано в переменную, каким образом мне её вставлять в мускул-запрос?
 
B

BlackShadow

Всё, разобрался. Кому ВДРУГ понадобится - вот код:

PHP:
for ($i=1; $i<=count($mails); $i++){ // в массиве mails хранятся id'ы выбранных нами сообщений
$n = $i-1;
$strdel .= $mails[$n].","; // создаем строку из идов для квери-запроса
}
$stt = "DELETE FROM ".$dir." WHERE id IN (".$strdel.")"; // генерируем строку квери-запроса
$gett = str_replace(",)",")",$stt);
/*
Пояснение: Это "обрезание" я сделал затем, чтобы исключить ошибки.
Сейчас наша переменная strdel имеет вид "1,2,3,6,9,". Ошибка вызовется из-за последней ЛИШНЕЙ запятой.
Поэтому я её отрезал
*/
$sql = mysql_query($gett); // Посылаем запрос

if ($sql){
echo "
<center>Выбранные сообщения удалены</center>
";
mysql_close($openMySQL);
} else {
echo "MySQL» Ошибка кода!<br>";
mysql_close($openMySQL);
}

Вот и всё..;)
 
B

Bugnet

Ну а если использовать логические операнды, в частности AND
DELETE FROM mytable WHERE id='1' AND id='2' AND id='6'
 
A

acorn

кста, а с AND тут не прокатит никак, нужно хотя бы OR :)
 
G

Guest

Так не проще будет:
$stt = "DELETE FROM ".$dir." WHERE id IN (" . implode(', ', $mails) . ")";
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!