Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
87 / 30 / 19
Регистрация: 16.01.2015
Сообщений: 250

Checkbox удаление записей из базы данных

12.08.2015, 12:43. Показов 3252. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP никаких ошибок не выдаёт, записи из базы загрузились, checkbox-ы появились, выделяю несколько, нажимаю "удалить" и ничего не происходит. Страница перезагружается, а эти checkbox будто не видит.
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
33
34
<?php
$db = mysql_connect('***.*.*.*', 'root', '');
mysql_select_db('news', $db);
?>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <?php
    if($_POST['data']){
    // echo join(', ', $_POST['data']);
        $data_id = join(', ', $_POST['data']);
        $delete = mysql_query("DELETE FROM data WHERE id IN ('.$data_id.')");
        echo "Статьи с ID: '.$data_id.'; удалены.";
    }
    else{
        echo "false";
    }
 
    $result = mysql_query("SELECT * FROM data") or die(mysql_error());
    $r = mysql_fetch_array($result);
    echo '<br><form method="post" action="test.php">';
    while ($r = mysql_fetch_array($result)){
        echo '<input type="checkbox" id="'.$r['id'].'" value="'.$r['id'].'" name="films[]" /><label for="'.$r['id'].'" style="cursor:pointer;">'.$r['title'].'</label><br>';
    }
    echo "<input type='submit' name='submitdel' style='padding: 3px 6px; margin: 10px;' value='Удалить' />";
    echo "</form>";
    ?>
</body>
</html>
Помогите пожалуйста найти и может исправить ошибку.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.08.2015, 12:43
Ответы с готовыми решениями:

Удаление из базы данных через форму и php методом checkbox
Имеем форму: &lt;form action=&quot;news_drop.php&quot; method=&quot;post&quot;&gt; &lt;? $result = mysql_query(&quot;SELECT * FROM news&quot;); $myrow =...

Удаление записей из базы данных
У нас есть две таблицы: ids_list и stats. Структура ids_list: id - список идентификаторов. Структура stats: id, value. Как...

Удаление записей из базы данных старше недели
Удаления записей из базы данных старше недели. Помогите пожалуйста составить коды для удаления записей старше недели. Код PHP ...

10
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
12.08.2015, 14:37
Вы принимаете $_POST['data'], а в каком месте формы вы его отправляете?
PHP
1
echo '<input type="checkbox" id="'.$r['id'].'" value="'.$r['id'].'" name="films[]" /><label for="'.$r['id'].'" style="cursor:pointer;">'.$r['title'].'</label><br>';
Тут у вас все чекбоксы имеют имя "films[]". Наверное стоит записывать туда id каждой новости.
1
87 / 30 / 19
Регистрация: 16.01.2015
Сообщений: 250
12.08.2015, 14:54  [ТС]
MadHatter, Точно, тут я исправил "films" на "data"
PHP
1
echo '<input type="checkbox" id="'.$r['id'].'" value="'.$r['id'].'" name="data[]" /><label for="'.$r['id'].'" style="cursor:pointer;">'.$r['title'].'</label><br>';
и в echo теперь показывает те id-шники, что я отмечал для удаления.
PHP
1
echo join(', ', $_POST['data']);
Но само удаление не происходит. И ошибка не выходит. Где ещё мог ошибиться?
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
12.08.2015, 15:03
А что у вас выводится при этом?
PHP
1
print_r($_POST['data']);
0
87 / 30 / 19
Регистрация: 16.01.2015
Сообщений: 250
12.08.2015, 15:53  [ТС]
MadHatter, пустота . А должны быть id ?
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
12.08.2015, 16:04
Да. Поставьте вместо
HTML5
1
name="films[]"
PHP/HTML
1
name='id".$r['id']."'
0
87 / 30 / 19
Регистрация: 16.01.2015
Сообщений: 250
12.08.2015, 17:11  [ТС]
MadHatter,
PHP
1
echo '<input type="checkbox" id="'.$r['id'].'" value="'.$r['id'].'" name="id'.$r['id'].' /><label for="'.$r['id'].'" style="cursor:pointer;">'.$r['title'].'</label><br>';
Но всё так же, ничего не удаляет(
Вот что сейчас
Кликните здесь для просмотра всего текста
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
33
34
35
36
37
<?php
session_start();
// $_SESSION['name']= 'adm'
$db = mysql_connect('127.0.0.1', 'root', '');
mysql_select_db('news', $db);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <?php
    if($_POST['data']){
    // echo join(', ', $_POST['data']);
        $data_id = join(', ', $_POST['data']);
        $delete = mysql_query("DELETE FROM data WHERE id IN ('.$data_id.')");
        echo "Статьи с ID: '.$data_id.'; удалены.";
    }
    else{
        echo "false";
    }
    $result = mysql_query("SELECT * FROM data") or die(mysql_error());
    $r = mysql_fetch_array($result);
    echo '<br><form method="post">';
 
    while ($r = mysql_fetch_array($result)){
        echo '<input type="checkbox" id="'.$r['id'].'" value="'.$r['id'].'" name="id'.$r['id'].' />
            <label for="'.$r['id'].'" style="cursor:pointer;">'.$r['title'].'</label><br>';
    }
 
    echo "<input type='submit' name='submitdel' style='padding: 3px 6px; margin: 10px;' value='Удалить' />";
    echo "</form>";
    ?>
</body>
</html>

Может что с кнопкой не так. С утра пытаюсь, и всё никак.
Там не нужно прописывать для кнопки if(isset($_POST[submitdel])){ а сюда положить if($_POST['data']){...} }?
так пробовал, ерунда одна.
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
12.08.2015, 21:44
А что выведет это?
PHP
1
print_r($_POST);
1
87 / 30 / 19
Регистрация: 16.01.2015
Сообщений: 250
13.08.2015, 08:08  [ТС]
MadHatter, Когда
PHP
1
name="data[]"
при выделении из списка
PHP
1
print_r($_POST);
выводит вот что
Array ( [data] => Array ( [0] => 5 ) [submitdel] => Удалить )

Добавлено через 1 минуту
Если
PHP
1
name="id'.$r['id'].'
То при выделении вот такая запись
Array ( [id5_/> 5 [submitdel] => Удалить )

Добавлено через 1 час 7 минут
Я изменил запрос на удаление
PHP
1
$delete = mysql_query("DELETE FROM data WHERE id = '$data_id'") or die(mysql_error()) ;
Тогда удаляет, но удаляет первый отмеченный checkbox. То есть выделяю 4, 5, 6 записи -> удаляет 4-ю.
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
13.08.2015, 10:01
Лучший ответ Сообщение было отмечено Hikaru как решение

Решение

Наверное выводится не Array ( [id5_/> 5 [submitdel] => Удалить ), а Array ( [id5]=> 5 [submitdel] => Удалить )?
Какие чекбоксы вы выделили при этом?
В кнопке отправки формы удалите атрибут name.
1
87 / 30 / 19
Регистрация: 16.01.2015
Сообщений: 250
13.08.2015, 13:30  [ТС]
MadHatter.
Ура, получилось.
Я убрал в кнопке атрибут name, не уверен, что из-за этого. Думаю причина вот в чём. У меня в запросе была ошибка с кавычками.
Было:
PHP
1
$delete = mysql_query( " DELETE FROM data WHERE id IN ( ' .$data_id.') " );
Теперь:
PHP
1
$delete = mysql_query( ' DELETE FROM data WHERE id IN ( ' .$data_id. ' ) ' );
Если кому-то нужен код удаления нескольких записей из базы checkbox-ами:
Кликните здесь для просмотра всего текста
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
$db = mysql_connect('127.0.0.1', 'root', '');
mysql_select_db('news', $db);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <?php
    if($_POST['data']){
        $data_id = join(', ', $_POST['data']);
        $delete = mysql_query('DELETE FROM data WHERE id IN ('.$data_id.')') or die(mysql_error()) ;
        echo "Статьи с ID: '.$data_id.'; удалены.";
    }
    else{
        // echo "false";
    }
    $result = mysql_query("SELECT * FROM data") or die(mysql_error());
    $r = mysql_fetch_array($result);
    echo '<br><form method="post">';
 
    while ($r = mysql_fetch_array($result)){
        echo '<input type="checkbox" id="'.$r['id'].'" value="'.$r['id'].'" name="data[]" />
        <label for="'.$r['id'].'" style="cursor:pointer;">'.$r['title'].'</label><br>';
    }
    echo "<input type='submit' style='padding: 3px 6px; margin: 10px;' value='Удалить' />";
    echo "</form>";
    ?>
</body>
</html><?php
$db = mysql_connect('***.*.*.*', 'root', '');
mysql_select_db('news', $db);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <?php
    if($_POST['data']){
        $data_id = join(', ', $_POST['data']);
        $delete = mysql_query('DELETE FROM data WHERE id IN ('.$data_id.')') or die(mysql_error()) ;
        echo "Статьи с ID: '.$data_id.'; удалены.";
    }
    else{
        // echo "false";
    }
    $result = mysql_query("SELECT * FROM data") or die(mysql_error());
    $r = mysql_fetch_array($result);
    echo '<br><form method="post">';
 
        do{
        echo '<input type="checkbox" id="'.$r['id'].'" value="'.$r['id'].'" name="data[]" />
        <label for="'.$r['id'].'" style="cursor:pointer;">'.$r['title'].'</label><br>';
    }
    while ($r = mysql_fetch_array($result));
    echo "<input type='submit' style='padding: 3px 6px; margin: 10px;' value='Удалить' />";
    echo "</form>";
    ?>
</body>
</html>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.08.2015, 13:30
Помогаю со студенческими работами здесь

Удаление записей из базы данных
Заранее хочу извиниться, возможно мой вопрос слишком прост. Передо мной встала следующая задача. Мне нужно вывести данные из базы данных в...

Удаление записей из таблицы базы данных
Необходимо удалить определенные записи из таблицы. Это надо сделать в Lazarus-е. Для отображения таблицы я использую компоненты SQLQuery и...

Удаление помеченых записей из Базы Данных.
У меня есть список, выводящийся из БД MS ACCESS. Напротив каждого элемента имеется chekbox. Как бы удалять выбраные записи? причём...

Удаление записей из базы данных. Нужен совет
Всем доброго дня! Прошу помочь советом. Вот код: var d1, d2: TDate; begin if...

Очистка базы данных от записей, помеченных на удаление
Как очистить базу данных от помеченных на удаление записей?


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru