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

Множественное редактирование записей

17.09.2015, 18:30. Показов 1689. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Нужно организовать множественное редактирование записей таблицы по id.
Имеется исходная таблица.
Нужно сделать функционал, что бы при выборе нескольких записей, нажатия кнопки "Редактировать", на месте этих записей появлялась форма с input type text с возможностью редактировать каждую запись.
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
<?php  
 
    $connect = mysql_connect('localhost','root','') or die (mysql_error());
    mysql_select_db('test');
    $query = mysql_query("SELECT * FROM test_search");
 
    echo " <form action='show.php' method='GET'>
                <table border = 1 cellpadding = 5 width = 600 align=center>
                    <tr align=center>
                        <th width=20> id </th> 
                        <th width=100> name </th>
                        <th width=100> email </th>
                        <th width=100> phone </th>
                        <th width=100> <input type='submit' name='edit' value='Редагувати'> </th>
                    </tr> 
                    </form>
         ";
 
     while ($b=mysql_fetch_row($query)){
        $x = $_GET[id.$b[0]];
 
        if (isset($_GET['edit'])) {
            
            if (!empty($x)) {
                mysql_query("UPDATE test_search SET name='$b[1]'
                                                WHERE id = '$b[0]'");
 
            } 
        }
                echo " 
                        <table border=1 cellpadding = 5 width = 600 align=center>
                            <tr align=center >
                                <td width=20>  $b[0] </td> 
                                <td width=100> $b[1] </td>
                                <td width=100> $b[2] </td>
                                <td width=100> $b[3] </td>
                                <td width=100>  
                                    <input type='checkbox' name='id$b[0]'>
                                </td>
                            </tr> 
                        </table>
                        </form>
                    ";
 
 
 
    };
 
    
?>
Миниатюры
Множественное редактирование записей  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2015, 18:30
Ответы с готовыми решениями:

Множественное удаление записей из БД
Скажите пожалуйста, что не так, я новенький в php. Надо сделать множественное удаление посредством checkbox`a. &lt;?php ...

Редактирование записей в БД
Ребята, помогите сдавать утром, сижу уже 3ий день над это базой, все никак не получается сделать скрипит на редактирование(( Удаление и...

редактирование записей
Добрый день. Есть таблица с колонкой комментарий которая содержит html тэги. Возможно ли удалить тэги с помощью скрипта?

5
100 / 70 / 26
Регистрация: 19.12.2014
Сообщений: 332
18.09.2015, 12:14
Ну ок, делайте. Проблема-то в чём?

Нужно сделать функционал, что бы при выборе нескольких записей, нажатия кнопки "Редактировать", на месте этих записей появлялась форма с input type text с возможностью редактировать каждую запись.
А не проще сразу выводить input type text, а ниже сделать кнопку "Сохранить"?
0
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 39
18.09.2015, 13:48  [ТС]
В том то и дело, что проще, но задание такое, с обязательным условием, что нужно чексбоксами выбрать необходимые записи для редактирование.
0
 Аватар для maldan
1 / 3 / 2
Регистрация: 20.09.2015
Сообщений: 18
20.09.2015, 16:15
Имена для input, textarea и т.д. лучше задавать как name[]. То есть

HTML5
1
<input type='text' name='title[]'>
Затем при отправке формы на сервер, у вас в $_POST будет доступен массив всех полей и по ним можно пробежаться циклом. Так можно сделать редактирование нескольких записей одновременно. В вашем случае еще нужно будет создать hidden поле с ID записи. То есть

HTML5
1
<input type='hidden' name='id[]' value="$b[0]">
Чтобы знать с какой записью работать потом.

Насчет замены ячеек таблицы на input учитывая выбранные checkbox это я думаю вам нужно сделать через JS или же в вашем задании это нужно сделать через PHP ?
0
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 39
20.09.2015, 17:32  [ТС]
Добавлено через 32 минуты
Спасибо большое Вам за ответ.
В моем задание нужно сделать весь функционал исключительно на PHP.
0
 Аватар для maldan
1 / 3 / 2
Регистрация: 20.09.2015
Сообщений: 18
20.09.2015, 17:58
Хорошо, для начала я бы посоветовал вам использовать функционал mysqli или pdo вместо mysql. Так как в новых версиях PHP например в 5.6 этих функцих mysql_connect, mysql_select и т.д. уже нет и проект ваш работать не будет.

Так же

PHP
1
2
while ($b=mysql_fetch_row($query)){
}
Вместо этого пишите лучше

PHP
1
2
while ($b=mysql_fetch_assoc($query)){
}
Так вам будут доступны данные по строковым идентификаторам вместо числовых. Иначе не разобрать что там находится в $b[1] например и т.д.

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

Во первых в формах используйте метод POST

HTML5
1
<form action='show.php' method='POST'>
В таблице измените поле с чекбоксом

HTML5
1
2
3
4
<td width=100>  
     <input type='checkbox' name='check[]'>
     <input type='hidden' name='id[]' value='".$b[0]."'>
</td>
Так же заметьте я написал $b[0] этот вариант не будет работать если вы используете mysql_fetch_assoc, вам придется писать $b["id"]. Если вы хотите чтобы работало и со строковыми идентификаторами и с числовыми, используйте mysql_fetch_array.

Теперь когда вы выбираете чекбоксы и отправляете форму, у вас пойдет запрос на show.php и в нем вам будут доступны данные о выбранных чекбоксах. Вот пример скрипта который я сделал.

PHP
1
2
3
4
5
6
7
$ids = [];
 
for ($i = 0; $i < count($_POST["id"]); $i++)
    if (isset($_POST["check"][$i]))
        array_push($ids, intval($_POST["id"][$i]));
 
$query = mysql_query("SELECT * FROM test_search WHERE id IN (".implode(",", $ids).")");
Он выбирает ID записей который отмечены в чекбосках и затем посылает запрос в БД на выборку только выбранных данных. Ну а затем генерируйте так же таблицу на основе этих данных, только выводите вместо текста уже input поля с заполненной информацией. Ну а сохранение делается аналогичным способом, так же задаете полям имена email[], name[] и т.д. А в следующем скрипте циклом пробегаетесь по всем полям и обновляете в БД данные, суть я думаю понятна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.09.2015, 17:58
Помогаю со студенческими работами здесь

Редактирование записей в БД
Имеется код, но он выдает ошибку, что БД не подключена, хотя вроде как она подключается &lt;html&gt; &lt;head&gt; ...

Редактирование записей БД
Есть такая таблица: `id` INT( 11 ) NOT NULL AUTO_INCREMENT , `title_news` VARCHAR( 255 ) NOT NULL , `introtext` TEXT NOT NULL , ...

Редактирование записей в таблице
Здравствуйте еще раз))) Мне надо организовать редактирование строк в таблице таким образом: нажимаю на ссылку Редактировать, по...

Удаление и редактирование записей из БД
Здравствуйте. Есть небольшая проблемка: когда я выбираю записи которые нужно удалить, и соответственно нажимаю кнопку &quot;Удалить&quot;...

Редактирование записей баз данных
Найдите ошибку &lt;html&gt; &lt;head&gt; &lt;title&gt;Invoices and expenses &lt;/title&gt; &lt;/head&gt;


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 11.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru