Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/117: Рейтинг темы: голосов - 117, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 17

Создание в таблице кнопки удаления записи из БД

23.05.2012, 00:23. Показов 23915. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
include "config.php";
if( isset($_GET['id']))
{
    $query1 = mysql_query('SELECT*FROM Books WHERE id='.$_GET['id']);
    $row=mysql_fetch_array($query1);
    echo $row['autor'];
    echo $row['price'];
    echo $row['title'];
} 
else
{
    $query = "SELECT * FROM Books"; 
    $res = mysql_query($query) or die(mysql_error()); 
    if($res)
    {
        echo "<table border=1 >";
        echo"<tr><td>id</td><td>autor</td><td>title</td><td>price</td><td>delete</td></tr>"; 
        while ($row=mysql_fetch_array($res))
        {
    echo "<tr><td>".$row['id']."&nbsp;</td><td>".$row['autor']."&nbsp;</td><td>".$row['title']."&nbsp;</td><td>".$row['price']."&nbsp;</td></tr>";
 
        }
    }
    else
    { 
        echo"не работает"; 
        exit();
    }
}
 
?>
В последней колонке таблицы под названием delete нужно создать именно кнопку удаления данных из БД напротив каждой записи
Буду благодарен за любую помощь!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2012, 00:23
Ответы с готовыми решениями:

Создание в таблице кнопки удаления записи из БД для каждой строки
&lt;?php include(&quot;../db.php&quot;); $res = mysqli_query($db,&quot;SELECT * FROM turnir&quot;); $turnir = mysqli_fetch_array($res); ?&gt; &lt;html&gt; ...

Создание записи в таблице Данные по нажатию кнопки на форме
При нажатии кнопки добавить запись ничего не происходит. Код на кнопке DoCmd.GoToRecord , , acNewRec. Подскажите пожалуйста в чём может...

Добавить функционал для кнопки: создание следующей записи в таблице
Есть кнопка &quot;Добавить запись&quot;. По её нажатию выскакивает окно с надписью &quot;Запись успешно добавлена&quot;: Private Sub...

25
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076
23.05.2012, 07:08
PHP
1
2
3
4
5
6
7
 
while ($row=mysql_fetch_array($res))
        {
    echo "<tr><td>".$row['id']."&nbsp;</td><td>".$row['autor']."&nbsp;</td><td>".$row['title']."&nbsp;</td><td>".$row['price']."&nbsp;</td><td><input type='submit' id='button' name='button' value='Удалить'></td></tr>";
 
        }
    }
1
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 17
23.05.2012, 21:05  [ТС]
С кнопкой все ок, только теперь как осуществить само удаление данных при нажатии на кнопку?
0
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076
23.05.2012, 21:30
Цитата Сообщение от Kalanxoe Посмотреть сообщение
С кнопкой все ок, только теперь как осуществить само удаление данных при нажатии на кнопку?
как-то так наверн

PHP
1
2
3
4
5
6
while ($row=mysql_fetch_array($res))
        {
    echo '<tr><td>'.$row['id'].'&nbsp;</td><td>'.$row['autor'].'&nbsp;</td><td>'.$row['title'].'&nbsp;</td><td>'.$row['price'].'&nbsp;</td><td><input type="submit" id="button_'.$row['id'].'" name="button_'.$row['id'].'" value="Удалить"></td></tr>';
 
        }
    }

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (isset($_POST['button']))
{
      $query = "SELECT * FROM Books"; 
    $res = mysql_query($query) or die(mysql_error()); 
 
while ($row=mysql_fetch_array($res))
        {
       $z="button_".$row['id'];
       if ($_POST[$z]!=' ')
        {
              mysql_query("DELETE FROM books WHERE id=".$row['id']);
        }
         if (mysql_affected_rows()==1)
            {
    header('location:здесь адрес страницы на к-рую надо перекинуть вас');
            }
 
        }
}

На самом деле нажатие кнопки не рекомендуется обрабатывать - в ИЕ в частности на нажатие Enter кнопка не реагирует - но тут уж сами смотрите что вам надо обработать - по-моему лучше кнопки на ссылки "удалить" заменить

Добавлено через 12 минут
а вообще вместо кнопки я бы сделал радиобаттоны - отметил галочкой какие книги надо удалить и удалил - а не тупо кнопкой каждую книгу удалять)
1
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 17
23.05.2012, 21:46  [ТС]
Что-то малек я не соображу, куда получается последний код нужно вставить?
после
PHP
1
2
3
4
{
     echo '<tr><td>'.$row['id'].'&nbsp;</td><td>'.$row['autor'].'&nbsp;</td><td>'.$row['title'].'&nbsp;</td><td>'.$row['price'].'&nbsp;</td><td><input type="submit" id="button_'.$row['id'].'" name="button_'.$row['id'].'" value="Удалить"></td></tr>';
        }
    }
?
А на счет кнопки согласен,но все же хочу сделать так.
0
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076
23.05.2012, 21:50
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (isset($_POST['button']))
{
      $query = "SELECT * FROM Books"; 
    $res = mysql_query($query) or die(mysql_error()); 
 
while ($row=mysql_fetch_array($res))
        {
       $z="button_".$row['id'];
       if ($_POST[$z]!=' ')
        {
              mysql_query("DELETE FROM books WHERE id=".$row['id']);
        }
         if (mysql_affected_rows()==1)
            {
    header('location:здесь адрес страницы на к-рую надо перекинуть вас');
            }
 
        }
}

вот это в самом начале страницы - даже перед <html>

остальное оставьте как было


Цитата Сообщение от Kalanxoe Посмотреть сообщение
А на счет кнопки согласен,но все же хочу сделать так.
с кнопкой опять не очень хорошо получается - я пишу if (isset($_POST['button'])) а она называется "button_'.$row['id'].'" - тут уж имя кнопки сами поправьте
0
 Аватар для allukard
307 / 218 / 70
Регистрация: 08.11.2010
Сообщений: 1,899
24.05.2012, 10:54
а есои так делать
PHP
1
if (isset($_POST['button']."_".$id))
0
4 / 4 / 0
Регистрация: 02.12.2011
Сообщений: 21
17.07.2012, 10:35
Я у себя осуществил через ссылку он просто передает через $_GET и делает запрос и удаляет так проще.
У меня другой вопрос как при нажатии ссылки сначала спрашивал хочет он удалить этот запись или нет. Потому что пользователь мог нажать случайно на удалить.
Вот что я пробовал. Я хотел это осуществить с помощью модальных окон (я думаю что без них ни как), но при нажатии этой ссылки модальное окно появляется и сразу исчезает, происходить это из за того что ссылка ведет "на новую страницу" хотя страница тоже самое она новая потому что <a href="index.php?id=2">Удалить</a>. Ссылка такая она передает id для того что бы сформировать другую ссылку уже в модальном окне <a href="index.php?del=<?php echo $_GET['id'] ?>">ДА</a> где спрашивается удалить запись что при нажатии ссылки удалит запись а нажав на крест не удалит. Естественно что бы не происходило перезупуск страницы можно в ссылке которое запускает модальное окно, убрать ссылку на страницу и поставить место него # тогда модальное окно появится но в ссылке ДА не будет передано id и значит не будет определенно какой запись удалить.

Может это как то можно осушествить через Javascript. To есть передать id через джаву а потом через php(зрз). :-)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
17.07.2012, 11:18
PHP
1
2
3
4
5
6
7
8
if(isset($_POST['кнопка_удаления']))
{
 echo "Для подтверждения удаления нажмите на кнопку:
<form method=post><input type=submit name='delete' value='Подтвердить'>
<input type=hidden name=id value='".$_POST['id']."'></form>";
if(isset($_POST['delete'])) { 
//удаляем
}
или через js confirm

Добавлено через 12 минут
JavaScript
1
2
3
4
5
6
7
8
<script>
function ask() {
var s = confirm("Вы уверены?");
if(s) {
document.forms['form1'].submit();
  }
}
</script>
HTML5
1
2
3
4
<form method=post id="form1">
<input type=text name=text>
<input type=button onclick="ask(); return false;">
</form>
PHP
1
2
3
4
5
<?php
if(isset($_POST['text'])) { 
//удаляем
}
?>
2
4 / 4 / 0
Регистрация: 02.12.2011
Сообщений: 21
17.07.2012, 14:47
Да это работает я конечно сделал по другому чуть чуть. Но тут не нужно забывать что все это происходит в цыкле. Я делаю запрос из базы данных и вывожу запись в цикле. А значит получается таких форм с названием form1 будет несколько а это приводит к тому что передает через POST только первую данную, а значит и удалит он первую запись, хотя нажимал к пример 3-ую запись. Я конечно могу поменять название формы в цикле чтобы было form1, form2, ... form.n, где n-это последовательное число и т.д. но как потом сказать джаву что он должен применить именно ту форму которая называется form.n?
Вот задачка! Во время этого вопроса у меня возник идея с первым вариантом. Пабробую это простое сообщение вывести в модальное окно. Если что то получится напишу.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
17.07.2012, 14:58
Цитата Сообщение от Грачья Посмотреть сообщение
Я делаю запрос из базы данных и вывожу запись в цикле.
и причем тут js вообще? ему абсолютно все равно что передавать. вынесите теги <form ... > и </form> за цикл и у вас будет одна форма.
добавьте скрытые поля с id из БД к каждой записи и все.
0
Рождён удивлять
53 / 56 / 9
Регистрация: 08.08.2011
Сообщений: 438
17.07.2012, 18:20
PHP
1
2
3
4
5
6
7
8
echo "<form action=\"/\" method=\"post\">
<td><input type='checkbox' name='check' value='$row['id']/>$row['id']." ".$row['title']." ".$row['desc']</td>
</tr><input type='submit' name='delete' value='Delete' />";
if(isset($_POST['delete']))
{
$check = $_POST['check'];
$res = "delete from table where id = '$check'";
}
0
4 / 4 / 0
Регистрация: 02.12.2011
Сообщений: 21
17.07.2012, 18:37
Я попробовал у меня не получилось, теперь выдает последную запись. Получается типо что вся форма принадлежит последней. Это я KOPOJI. Мы тут решаем чуточку но чем то похожую тему.
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
17.07.2012, 21:41
Господа Вы на 3 страницы форума нагородили простейший код. Зачем делать форму если достаточно ссылки на страницу удаления?
Вставить ссылку с таблицы из поля удаления например del.php&id=(тут без скобок ид записи из базы которую нужно удалить)
Далее файл del.php
PHP
1
2
3
4
5
6
7
8
<?php
if(isset($_GET[id])) {
include "config.php";
$res = mysql_query("delete from table where id = '$_GET[id]'");
if(!$res) exit('ошибка удаления');
//если удаление удачно можно сделать рефреш на страницу вовода из базы
}
?>
0
17.07.2012, 21:48

Не по теме:

о да :D
del.php?id='+or+1=1+--+
прикольно будет :D
кстати да, ТС, pyramida, случайно ошибся - там вместо амперсанта & Знак вопроса нужен - ?

0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
17.07.2012, 22:07
KOPOJI, вопрос в безопастности не стоял? нет. А ваша инъекция прекрасно решается функцией is_numeric
Насчет вопроса правильно мой косяк
0
17.07.2012, 22:10

Не по теме:

Цитата Сообщение от pyramida Посмотреть сообщение
прекрасно решается функцией is_numeric
по-моему проще юзнуть intval() :)
вы не подумайте ничего, я просто опять же к тому, что нужно предупреждать об уязвимости - а потом "а почему меня взломали", "а почему все пусто", и т.д.
сорри, мое личное мнение - не хочу никого задеть или что еще)

0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
17.07.2012, 22:17
KOPOJI,

Не по теме:

нет уважаемый. intval — Возвращает целое значение переменной, а is_numeric — Проверяет, является ли переменная числом или строкой, содержащей число Вы сможете с интвал сделать такую конструкцию

PHP
1
!is_numeric($_GET['category']) exit('не надо меня инклюдить');
? Вы грамотный программист думаю поймете. Про интвал из книг софттайма читали?

0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
17.07.2012, 22:28

Не по теме:

Цитата Сообщение от pyramida Посмотреть сообщение
Про интвал из книг софттайма читали?
нет :D если честно не помню даже где я про нее читал))
я про то что можно просто не проверять - а сразу брать число (если оно там есть)
P.S. про is_numeric помню :) по сути здесь идентично, не знаю что быстрее работает из них



Добавлено через 6 минут

Не по теме:

Цитата Сообщение от pyramida Посмотреть сообщение
Вы сможете с интвал сделать такую конструкцию
кстати смогу, и спокойно
PHP
1
if(intval($_GET['id'])==0) exit('не надо меня инклюдить');
единственная разница - что если в строке параметр будет вида ?id=3333fff то мой вариант выдаст 3333 - а ваш выдаст ошибку
ну и чуть-чуть побыстрее is_numeric работает (проверял на цикл с миллионом итераций - разница в примерно три десятых секунды

0
4 / 4 / 0
Регистрация: 02.12.2011
Сообщений: 21
17.07.2012, 22:34
Ладно ребята вы все молодцы особое благодарю за идею (KOPOJI). У меня получилось я решил задачу.
Ну чтоб текст был не коротким напишу как решил задачку, может кому то поможет. А если кто то поинтересуется напишу подробно. Я решил остановится на ссылках.
1) Я вызываю через js модальное окно она появляется только когда есть определенна форма к примеру <div id="dialog">
тут текст и форма которая отправляет id при нажатии на кнопку "да". </div>
2) зрз проверяет есть ли $_get если есть то он выводит форму с <div> и срабатывает js, появляется модальное окно при нажатии кнопки зрз проверяет уже $_POST['delet'] если пост существует то удаляет запись.
И все счастливы и довольны.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.07.2012, 22:34
Помогаю со студенческими работами здесь

Программирование кнопки удаления записи
procedure TForm1.Button5Click(Sender: TObject); var i:integer; begin Seek(NoteFile, pos); Truncate(NoteFile); ...

Блокирование удаления записи если стоит галочка в таблице
Добрый день. Подскажите пожалуйста. Есть табличная форма, в которой работает сейчас условие - если напротив записи стоит галочка, то...

Создание триггера до удаления записи и триггера после удаления записи
Есть БД на рис. пишу триггер при удаление клиента что бы сначала до удаления удалилась таблица t_pledge. А после остальные связанные....

Применение кнопки удаления записи в подчинённых формах
Имеется главная форма с подчинёнными формами. Необходимо добавить кнопку удалить запись, после нажатия которой должно появится сообщение о...

Создание записи в таблице SQlite
Учусь использовать SQLite, но никак не выходит создать запись. SQLcommand.CommandText = &quot;CREATE TABLE &quot; &amp; Y &amp; &quot;(X...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru