|
5 / 5 / 1
Регистрация: 04.01.2013
Сообщений: 393
|
|
Редактирование данных в таблицах из браузера02.09.2013, 09:53. Показов 10791. Ответов 19
Метки нет (Все метки)
нужен скрипт редактирования данных в таблицах базы данных.
что бы выходила табличка с данными таблицы базы mysql и прямо в ней можно было редактировать строки. всё что нашел в гугле каое то корявое и не функциональное.заранее спасибо!
0
|
|
| 02.09.2013, 09:53 | |
|
Ответы с готовыми решениями:
19
Редактирование данных в связанных таблицах Выборка и редактирование данных размещенных в нескольких таблицах
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 02.09.2013, 10:23 | ||||||
|
как-то так можно, например, если по-простому
а, нет, ошибся, вам же изменить надо данные, а не записать
0
|
||||||
|
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
|
|
| 02.09.2013, 17:55 | |
|
В каждую ячейку бд добавить <input type="text" value="значение из бд"> В конце столбец с кнопкой и скрытым полем, в котором будет ид записи в базе, каждую строку обернуть в форму и при нажатии кнопки сохранять выбранную строку. Такой вариант не подходит?
0
|
|
|
Заблокирован
|
||
| 02.09.2013, 19:19 | ||
|
ТС По-простому не получится. Ищите по слову datagrid.
Без заморочек с полями ввода есть способ сделать ячейки хтмл-таблицы редактируемыми и сохранять весь выданный диапазон как есть. Саму таблицу придется построить так, чтобы можно было собрать данные ява-скриптом, или забить массив ява-скрипту так, чтобы он построил таблицу и собрал с нее все правильно. Правильно это значит столбцы в строке 0 придется идентифицировать именами полей, то есть добавить атрибут id=table[field_name] или типа того. В процессинге как минимум надо найти хотя бы одно ключевое поле для условия WHERE, следовательно придется ковырять флаги, которые можно ковырять только в результате запроса, следовательно надо либо и запрос передавать, ну тупо SELECT * FROM mytable в процессинг, чтобы он еще раз там спросил и расковырял, либо доставать флаги в скрипте рисующем таблицу, находить поле(я) для условия, как-то их сохранять и отгружать. Кроме того чтобы все было нормально придется проверять типы, значит и типы надо доставать и сохранять, отгружать. Ну и главный геморрой это как самый легкий случай поля типа enum, set, bit, datatime, decimal - которые будучи отображены просто текстом заколебут любого оператора ровно за одну сессию. А как самый тяжелый случай это редактирование связанных таблиц. Кроме того в простую хтмл-таблицу заедут все служебные поля - автоинкременты и куча связанных, которые вообще редактировать вручную чревато. Короче ищите datagrid или юзайте phpMyAdmin или типа того. KOPOJI, а где собственно там таблица рисуется? Добавлено через 6 минут
0
|
||
|
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
|
||
| 03.09.2013, 10:45 | ||
|
0
|
||
|
Заблокирован
|
||||||
| 03.09.2013, 17:17 | ||||||
|
Потому что в запросе вида
Но как вы узнаете где в этой таблице то поле, которое можно поставить в условие WHERE? Имеется ввиду что заранее неизвестно имя такого поля. Которое по вашему совету можно воткнуть в имя кнопки submit. Вот вы лично как бы достали это самое имя из результата? Ваш ответ и будет иллюстрацией насколько просто сделать datagrid на php
0
|
||||||
|
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
|
|||||||||||||||||
| 03.09.2013, 19:32 | |||||||||||||||||
Я бы строил таблицу следующим образом:
0
|
|||||||||||||||||
|
Заблокирован
|
|||
| 04.09.2013, 08:27 | |||
|
Ваш код в цитате поэтому не имеет смысла. На каждую таблицу придется писать свое приложение и составлять список для выбора приложений для открытия таблиц. Кроме того, что будет с такой формой если в таблице 10000 записей? Добавлено через 2 минуты как приложение узнает какое поле ключевое если вы сами этого не знаете? Добавлено через 1 час 59 минут Тема вообще каноничная. Как обычно поступает программист? Слева у него окно с кодом, справа окно со структурой таблицы (ddl). Он пишет input type="text" name = "что_то_придумал[что_то_выдумал]", смотрит в ddl и пишет: value="$поле_из_таблицы". Дойдя до ключевого поля поглядывая в ddl пишет: input type="hidden" остальное по шаблону выше. Затем левое окно становится справа, а слева появляется окно с кодом процессинга. Процесс повторяется. Теперь программист переписывает все отношения из одного php, в другой php. Таким способом скрипт становится неотъемлемой частью БД со всеми вытекающими прелестями. Захотел добавить поле в таблицу - упомни об этом факте _во всех_ скриптах. Захотел удалить - обязан упомнить об этом факте _во всех_ скриптах.
0
|
|||
|
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
|
|||
| 04.09.2013, 12:38 | |||
|
Можно даже зная только название бд узнать список всех таблиц, а потом уже из каждой таблицы вытащить столбцы и их свойства.
0
|
|||
|
Заблокирован
|
|
| 04.09.2013, 22:50 | |
|
Ну вот, это и есть ответ насколько просто сделать datagrid на пхп.
Узнать свойства легко через fetch_field, однако их надо не только узнать, но и использовать. И не только в скрипте который читает данные, но и в скрипте который их записывает. Следовательно их как-то надо туда передать, чтобы второй раз не разбираться с тем же самым. Да-да, для этого существует пагинация. Однако в вашем проекте редактируется ровно 1 строка в любой момент времени. Стало быть пагинация сужается до 1 записи и тогда зачем вообще таблица. Выводим поля, находим ключ, делаем из него скрытое поле и еще пару кнопок для следующей-предыдущей записи. Чтобы отредактировать пачку строк потребуется собрать все отредактированое или как-то выделенное юзером. Пачку упаковать яваскриптом со всем барахлом и отгрузить. В результате вроде бы простая задача превращается в голимый геморрой. И это только для одной таблицы. Чтобы редактировать связанные таблицы это геморрой в кубе. Добавлено через 1 минуту Кстати пагинация тянет за собой поиск, если вы забыли. Добавлено через 6 минут Самое смешное что в API mysqli вообще нет понятия курсора поскольку нет никакой постоянной связи между клиентом, который агент и бд, которая на сервере. В сессии ресурсы не сохраняются. Что пагинация, что шмагинация по одной записи вперед и назад идет через запросы которые хитромудро вычисляют то место в таблице, которое юзер захотел.
0
|
|
|
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
|
||||||
| 05.09.2013, 15:18 | ||||||
|
0
|
||||||
|
Заблокирован
|
|
| 06.09.2013, 09:10 | |
|
Формат datagrid подразумевает что все кроме имени БД и ТБ заранее неизвестно. Типичный случай. У вас список таблиц из списка БД, щелкнули - развернулась. Какие там ключи, какие поля, как это все редактировать - придется разбираться по месту с каждой таблицей.
Если вы посмотрели в DDL и вписали в скрипт имя ключевого поля - это не datagrid. Объясните, конечно. Как передавать флаги в контрольный скрипт? Таких строк с кнопками можно наделать сколько угодно, но отредактировать можно будет только одну за одно нажатие кнопки submit. Поиск по развернутой таблице. Если она вся влезла в браузер, искать можно браузером. Если не вся - придется делать поиск. Кроме того столбцы еще надо сделать ссылками на сортировку. Что значит зачем редактировать пачкой? Потому что заколебешься редактировать десяток записей по-одной. Я понимаю вы написали - кто-то мучается. Если вы напишите что называется как для себя - сразу увидите в этом всю нужду.
0
|
|
|
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
|
||||||||
| 06.09.2013, 11:33 | ||||||||
|
P.S. http://www.php.net/manual/ru/r... es.get.php http://www.php.su/phphttp/?cookies http://www.php.su/articles/?cat=examples&page=070
0
|
||||||||
|
Заблокирован
|
||
| 06.09.2013, 22:25 | ||
|
0
|
||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 07.09.2013, 10:59 | |
|
0
|
|
|
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
|
|||
| 07.09.2013, 11:26 | |||
|
0
|
|||
|
Заблокирован
|
||||||
| 07.09.2013, 19:02 | ||||||
|
Об автоматизации переноса данных из DDL в скрипты.
На самом деле не все так просто, но и не так сложно чтобы не написать себе datagrid за несколько дней. Может быть даже за один если есть опыт и заготовки. Такие приложения как PMA писались годами коллективом энтузиастов, однако инлайновая правка появилась относительно недавно и работает совершенно уродски. Основа datagrid конечно таблица. Редактировать ее саму можно, но к этому процессу как выяснилось никакие события не привязаны. Проще заиметь поля ввода связанные с каждым столбцом в количестве равном показанным столбцам. Поля в форме которая по умолчанию display:none. Юзер каким-то образом выражает желание изменить запись - форма появляется и все ее элементы, то есть поля ввода - тоже. Остается только перенести размер и координаты ячеек на эти поля чтобы они оказались ровно там, где юзер желает редактировать данные. Закончил - форма исчезает, с ней все барахло, данные из полей переносятся в таблицу и тут можно отметить что было изменено чтобы юзер видел свои следы. Например поменять цвет текста на красный в тех ячейках, где данные изменены. Так можно менять строку за строкой в любом месте таблицы. В финале юзер давит кнопку сохранить, яваскрипт собирает данные с подвергнутых правке строк, валит в поля и жмет submit форме. Добавлено через 9 минут имена таблиц, полей, флаги, типы передаются просто через имя инпута. Пользуясь особенностью php компилить изображение массива в массив все становится легко и просто. Например
А вы четыре ссылки накидали в ответ на вопрос как передать флаг поля в обработку.
0
|
||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||||||
| 07.09.2013, 21:33 | |||||||
![]()
0
|
|||||||
|
Заблокирован
|
|
| 08.09.2013, 11:17 | |
|
Если вывести все в одной форме будет 100500 полей. Из которых только может быть 1 использовано, а обновить придется все. Самое смешное что UPDATE не обновляет совпадающие значения, но поскольку обработчик не знает что не совпадает, ему придется посылать все.
0
|
|
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 11
|
|||||||||||
| 20.06.2016, 23:35 | |||||||||||
|
Я нашел более простую и лучшую реализацию календаря на JS. Cамое главное в код внедрить пустяк.
Исходный код этого примера:
Если подробнее, то там:https://htmlweb.ru/java/example/calendar.php
0
|
|||||||||||
| 20.06.2016, 23:35 | |
|
Помогаю со студенческими работами здесь
20
Изменение данных в таблицах базы данных Связь данных в таблицах Замена данных в таблицах Сравнение данных в таблицах Поиск данных в таблицах! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
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 полиномов. . .
|