1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

Тема в разделе "Web - программирование", создана пользователем BlackShadow, 1 мар 2012.

Статус темы:
Закрыта.
  1. BlackShadow

    BlackShadow Well-Known Member

    Репутация:
    0
    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    3
    знаю, что есть конструкция DELETE FROM mytable WHERE id IN 1,2,6. Как её правильно использовать? И если у меня mytable записано в переменную, каким образом мне её вставлять в мускул-запрос?
     
  2. BlackShadow

    BlackShadow Well-Known Member

    Репутация:
    0
    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    3
    Всё, разобрался. Кому ВДРУГ понадобится - вот код:

    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);
    }
    Вот и всё..;)
     
  3. Bugnet

    Bugnet Гость

    Репутация:
    0
    Ну а если использовать логические операнды, в частности AND
    DELETE FROM mytable WHERE id='1' AND id='2' AND id='6'
     
  4. acorn

    acorn PHP Developer

    Репутация:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    585
    Симпатии:
    3
    IN все-таки лучше :)
     
  5. BlackShadow

    BlackShadow Well-Known Member

    Репутация:
    0
    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    3
    я опять рулю :)
     
  6. acorn

    acorn PHP Developer

    Репутация:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    585
    Симпатии:
    3
    кста, а с AND тут не прокатит никак, нужно хотя бы OR :)
     
  7. Гость

    Репутация:
    0
    Так не проще будет:
    $stt = "DELETE FROM ".$dir." WHERE id IN (" . implode(', ', $mails) . ")";
     
  8. acorn

    acorn PHP Developer

    Репутация:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    585
    Симпатии:
    3
    вы открыли америку! а предыдущие сообщения слабо прочитать? тема закрыта.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей