Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Raspytnik
Зарегистрирован: 27.09.2006 Сообщения: 4 Откуда: одесса
|
Добавлено: Вс Окт 08 2006 20:06 Заголовок сообщения: удаление строк из таблицы(php mySql) |
|
|
у меня есть бд в мускуле, я пишу к ней программулину типа phpmyadmin но для наших работников. сделал форму на добавление, которая выводит данные одной таблицы, и в конце каждой строки добавил checkbox. а теперь хочу добавить кнопку удалить, чтобы при выборе нескольких полей пользователь нажал кнопку и эти поля улетели. checkboxы у меня имеют имена id строк. как составить запрос, чтобы он брал отмеченные строки и удалял их из таблицы? _________________ Жизнь это счастье |
|
Вернуться к началу |
|
|
Alex_pm
Зарегистрирован: 26.08.2006 Сообщения: 55
|
Добавлено: Пт Окт 13 2006 22:20 Заголовок сообщения: |
|
|
DELETE ..... WHERE kod = k1 OR kod = k2 OR.....
По пробуй еще
WHERE kod IN (k1, k2, k3, ....)
но по моему MySQL такое не понимает |
|
Вернуться к началу |
|
|
Dmitry K
Зарегистрирован: 19.09.2004 Сообщения: 31
|
Добавлено: Пт Ноя 03 2006 08:14 Заголовок сообщения: Re: удаление строк из таблицы(php mySql) |
|
|
Дарове!
рад буду помочь тем что знаю, сам пишу подобие myadmin, вот скоро уже 3-й месяц пойдет. Но это болтовня давай к делу.
что касательно удаление одной строки, то оно у нас в MySql делается следующим образом
//формирую запрос на удаление клиента
$Query="DELETE FROM equipment WHERE id=".$id;
//Производим удаление из таблицы:
$Answer=mysql_query($Query);
Воот как видишь equipment -это название той таблички из котороый ты херить строчки будешь, ну а id это название поля таблички из которое ты херить будешь.
Значит далее по тексту если ты напишеш $Query="DELETE FROM equipment"; и подаш такой запрос, то табличка останется, а все ее содержимое похереься.
Еще что хочу сказать: Вот например если поле по которому ты ищеш строку для удаления является не цифровыйм полем, а строкой то надо писать так:
$Query="DELETE FROM equipment WHERE name LIKE \"TheName\"";
Вот. А если несколько строчек хочешь удалть напиши как говорит Alex_pm $Query="DELETE FROM equipment WHERE id=1 OR id=2";
Вот тогда фнукция mysql_query вернет тебе true если ты удалил все элмементы, а вслучае не удаления хоть одного тебе false напишут.
Я бы лучше сделал удаление через цикл, где коды всех удалений будут лежать в массиве
$ForDelete=array(1,2,4,5);
foreach($ForDelete as $v){
$Query="DELETE FROM equipment WHERE id=".$v;
$Answer=mysql_query($Query);
if(Answer) echo "$v - успешно удален<br>";
else echo "$v - удалеть не удалоьс<br>";
}
А передавать большое количестов занчений можно, следующим образом: создать скрытое поле, куда через знак "|" записывать id которые надо удалить, а потом при помощи функции:
***********************************************************
explode ( )
Функция explode( ) делит строку на элементы и возвращает эти элементы в виде массива. Синтаксис функции explode( ):
array explode (string разделитель, string строка [, int порог])
Разбиение происходит по каждому экземпляру разделителя, причем количество полученных фрагментов может ограничиваться необязательным параметром порог. Разделение строки функцией explode( ) продемонстрировано в следующем примере:
$info = "wilson | baseball | indians";
$user = explode("|", $info);
// $user[0] = "wilson";
// $user[1] = "baseball";
// $user[2] = "Indians";
***************************************************
Для этого заполнения скрытого поля используй javaScript.
Желаю удачи. |
|
Вернуться к началу |
|
|
|