Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Удаление строки из таблицы БД нажатием на кнопку.
Я уверен, есть более разумное решение или все именно так?
Что делает данный код?
Выводит данные из БД сортируя в обратном порядке по id. Сразу же выводит кнопку удаления записи (строки таблицы) и обновляет страницу с помощью js, чтобы сразу запись пропадала. Ну про js я вообще молчу, я о нем фактически ничего не знаю.
К стати ,если в коде, за место POST вставить везде GET, то он также будет работать, но в url страницы, можно наблюдать как передаются данные.
--
Спасибо Прикреплено изображение (Нажмите для увеличения)
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
vitaliy_mad
Отправлено: 17 Января, 2010 - 17:08:29
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
Помог: 0 раз(а)
в принципенормально... только цикл надо использовать с предуслевием...
Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010 Откуда: Россия, Москва
Помог: 1 раз(а)
Ну собственно это вопрос
Кто нибудь посоветует как это реализовать правильно, чтобы в кнопках можно было писать необходимый мне текст, а не id вставлять, надеюсь вы понимаете, что опыт у меня маленький и не надо слишком коротко описывать и по русски писать функции.
Неужто так все сложно)?
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
vitaliy_mad
Отправлено: 17 Января, 2010 - 21:53:40
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
Помог: 0 раз(а)
LEONeso пишет:
Неужто так все сложно
написать не сложно, сложно понять что Вы хотите сделать!
action=index.php?1 - не передает данные
если указать кнопке name=1, то кнопка передает в адресную строку Единицу и далее присваивает ей value кнопки. В итоге, url очень кривится.
--
Теперь думаю понятнее.
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
RomAndry
Отправлено: 17 Января, 2010 - 23:11:39
Частый посетитель
Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008
Помог: 6 раз(а)
ну как бы не вижу ничего ошибочного.
вот некоторые замечания
1. (что написал vitaliy_mad
vitaliy_mad пишет:
цикл надо использовать с предуслевием
2. Зачем в проверке if ($myrow = mysql_fetch_array($result))
устанавливать проверку на то, что строка будет удалена?
2.1. это не имеет смысла
2.2. последнюю запись не сможешь удалить
LEONeso
Отправлено: 17 Января, 2010 - 23:38:09
Посетитель
Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010 Откуда: Россия, Москва
Помог: 1 раз(а)
RomAndry пишет:
ну как бы не вижу ничего ошибочного.
вот некоторые замечания
1. (что написал vitaliy_mad
vitaliy_mad пишет:
цикл надо использовать с предуслевием
2. Зачем в проверке if ($myrow = mysql_fetch_array($result))
устанавливать проверку на то, что строка будет удалена?
2.1. это не имеет смысла
2.2. последнюю запись не сможешь удалить
Это проверка идет в БД, проверяет, есть ли запись в таблице БД (если нету, то он пишет ,что "бд пуста"), далее проверяется для цикла do, если есть, то выводи до упора.
А теперь фокус =) переменная result_delete, удаляет выбранную строку в таблице.
$result_delete=mysql_query("DELETE FROM iwd WHERE id='$id'",$db);
Перед этим, проверяется, есть ли в url данные ?del (далее присвоение id где id это id строки в таблице БД).
Это если методом GET выбран, а так и POST проверяет данные, но в url не выводит.
В чем проблема? Я не могу ввести текст для кнопки т.к. из name берет del из value берет %s где %s это $myrow['id'] т.е. id строки таблицы и таким чудесным образом пропадает возможность ввода текста для кнопки.
--
Вот попытался объяснить некоторые части первого поста.
Теперь я снял видео формата swf, с проблемой скачать (840кб) открывается с помощью MPC или браузера.
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
vitaliy_mad
Отправлено: 17 Января, 2010 - 23:43:06
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
Помог: 0 раз(а)
обычно для id используется скрытое текстовое полу, а у value кнопки пишеть то, что нужно вам... потом в обработке считываем value не у кнопки, а у того скрытого поля...
Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010 Откуда: Россия, Москва
Помог: 1 раз(а)
vitaliy_mad пишет:
обычно для id используется скрытое текстовое полу, а у value кнопки пишеть то, что нужно вам... потом в обработке считываем value не у кнопки, а у того скрытого поля...
Я не в курсе скрытого поля, как это делается?
Так везде делают? даже в кнопках отправления топика на форуме?
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
vitaliy_mad
Отправлено: 18 Января, 2010 - 00:07:15
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
Да, работает со скрытым, но появилась еще проблема =)
Когда на странице 2 кнопки, при нажатии на вторую также задействуется первая, хотя они в разных form.
<formname="delete_form"method="GET"action="index.php"><inputtype="hidden"name="del"id="del"value="63"/><inputtitle="Удалить строку из БД с id 63 - Название"class="button"type="submit"id="delete"value="удалить"/></form> Название [с 2010-01-18 по 2010-01-18]
В чем может быть проблема?
и главное ссылка преображается вида ?add=1&del=63
т.е. идет запрос на "добавить" и "удалить запись с id 63" Прикреплено изображение (Нажмите для увеличения)
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
vitaliy_mad
Отправлено: 18 Января, 2010 - 01:05:23
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
born
Отправлено: 10 Августа, 2010 - 02:00:01
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Здравсвуйте профи!
Я извиняюсь, что ворушу старую тему, но у меня похожая проблема, я уже думал что она не решаема, а у LEONeso вроде получилась. идея в том что у меня в таком случае
в $_POST['delid'] садится айдишник последнего скрытого поля выводимого в цикле, а не того рядом с которым я щелкнул кнопку удалить. Подскажите пожалуйста почему у меня так получается? Заранее спасибо
JustUserR
Отправлено: 10 Августа, 2010 - 02:32:31
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
born пишет:
В $_POST['delid'] садится айдишник последнего скрытого поля выводимого в цикле, а не того рядом с которым я щелкнул кнопку удалить
Для диагностики можете попробовать посмотреть исходный HTML-код страницы на которой вы выводите набор форм для удаления требуемых объектов из БД - и проверить какие в действительности значения принимают value-аттрибуты скрытых полей при интерполяции в них значений из PHP-скрипта Вероятно имеется какая-то ошибка в генерирующием цикле - и значение $id для текущей итерации устанавливается некорректно
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.