Comments 53
И да — есть, конечно, phpmyadmin. Есть Django с офигительными админками из коробки.
Данное решение — это на тот случай, когда надо за 5 минут сделать сносную админку, понятную непрограммисту, а на хостинге только php и mysql. Как временная замена нормальной админке.
Данное решение — это на тот случай, когда надо за 5 минут сделать сносную админку, понятную непрограммисту, а на хостинге только php и mysql. Как временная замена нормальной админке.
+2
Вопрос, эта штука работает с таблицами напрямую или можно организовать виртуальную таблицу, которая бы замещала данные в нескольких реальных? К примеру есть таблица пользователей, у которой дополнительные связи. К примеру часто меняющиеся данные в одной таблица, не меняющиеся — в другой, а статистика в третьей, можно ли их здесь объединить в одну и удобно редактировать?
Если да — цены не будет Вашей админке, если же нет — то, простите, еще один велосипед на тему пхп админа. В режиме админа выглядит довольно жутковато.
Если да — цены не будет Вашей админке, если же нет — то, простите, еще один велосипед на тему пхп админа. В режиме админа выглядит довольно жутковато.
0
Работает напрямую.
Но поддерживаются связи 1 ко многим между двумя таблицами. Таким образом, можно сделать одну таблицу, завязанную на две другие. Во время правки юзеров можно выбрать из выпадающего списка значения из связанной таблицы :)
Но поддерживаются связи 1 ко многим между двумя таблицами. Таким образом, можно сделать одну таблицу, завязанную на две другие. Во время правки юзеров можно выбрать из выпадающего списка значения из связанной таблицы :)
0
Что касается Вашей задачи, если Вы ее чуть подробнее и детальнее опишите — думаю, легко можно допилить.
Но там в принципе код phpMyEdit страшный, и само решение трудно лепить как заблагорассудится.
Но там в принципе код phpMyEdit страшный, и само решение трудно лепить как заблагорассудится.
0
ну задача очень распространенная, особенно если загруженный сервер, часто редактируемые данные выносятся в отдельные таблицы, часто данные в связных хранятся и так далее. По сути речь идет о нескольких таблицах, причем линейных, 1 к 1, связанные через ID. В моем случае на одном из проектов можно выделить хранение юзера, я писал интеграцию с phpbb3 и в итоге получается:
phpbb3_users и в ней поле user_id (без изменений, в случае если нужно будет апдейтить форум и т.д.)
дальше рядом моя таблица users с нужными для проекта данными, ясное дело избыточности нету, ни username, ни email в ней не найдете, но вот id и кучу другой информации — запросто. В пхпбб немного переписан механизм сессии и он утягивает не только свою юзерс но и поля из моей таблицы, а вот в пхп админе редактировать их приходится раздельно. Можно усугубить и добавить какое-нибудь понятие кармы и других часто изменяемых значений, которые могут переписываться очень часто и чтобы не мучать большую таблицу с кучей полей — вынести эту карму в третью, тогда надо редактировать уже 3 таблицы. Для этого была написана своя админка, но вот более глобального решения, которое бы, к примеру, принимало структуру базы со связями и универсально строило админку для подобных случаев не делал.
phpbb3_users и в ней поле user_id (без изменений, в случае если нужно будет апдейтить форум и т.д.)
дальше рядом моя таблица users с нужными для проекта данными, ясное дело избыточности нету, ни username, ни email в ней не найдете, но вот id и кучу другой информации — запросто. В пхпбб немного переписан механизм сессии и он утягивает не только свою юзерс но и поля из моей таблицы, а вот в пхп админе редактировать их приходится раздельно. Можно усугубить и добавить какое-нибудь понятие кармы и других часто изменяемых значений, которые могут переписываться очень часто и чтобы не мучать большую таблицу с кучей полей — вынести эту карму в третью, тогда надо редактировать уже 3 таблицы. Для этого была написана своя админка, но вот более глобального решения, которое бы, к примеру, принимало структуру базы со связями и универсально строило админку для подобных случаев не делал.
0
а, ну так это можно решить вьюшкой.
то есть
а) в базе делается вьюшка create view my_view as select ...fields… from table1 join table2 on table2.key = table1.some_key…
б) QuickAdm допиливается за 1 час, чтобы уметь просто создавать ОПИСАНИЯ объектов и свойств, не привязываясь к объектам. дальше описываем my_view.
ну а если влом допиливать — прямо берем, за 10 минут врубаемся в phpMyEdit и настраиваем его на нашу вьюшку (но тут поля уже придется описывать в коде)
в) профит!
то есть
а) в базе делается вьюшка create view my_view as select ...fields… from table1 join table2 on table2.key = table1.some_key…
б) QuickAdm допиливается за 1 час, чтобы уметь просто создавать ОПИСАНИЯ объектов и свойств, не привязываясь к объектам. дальше описываем my_view.
ну а если влом допиливать — прямо берем, за 10 минут врубаемся в phpMyEdit и настраиваем его на нашу вьюшку (но тут поля уже придется описывать в коде)
в) профит!
0
symfony embed form или merge form, google it
-1
В случае загруженного сервера у вас есть и администратор, и более продвинутые тулзы для администрирования. Это не usecase для указанной в посте тулзы.
+1
уже
0
а ещё в названиях обьектов
0
блин, эта штука не предназначена для этого :) в сферическом вакууме это нужно, а в реале ИМХО нет.
то бишь админ правит и настраивает объекты и свойства.
а обычным юзерам даются просто доступы к таблицам, но никак не к самой части.
предполагать, что админ такой зверь, что сам себе делает XSS, это круто.
хотя конечно бывают случаи, когда уводят акк админский
то бишь админ правит и настраивает объекты и свойства.
а обычным юзерам даются просто доступы к таблицам, но никак не к самой части.
предполагать, что админ такой зверь, что сам себе делает XSS, это круто.
хотя конечно бывают случаи, когда уводят акк админский
+2
Всякое бывает, и вообще это культура программирования писать правильный код не надеясь что никому не придет в голову использовать уязвимость
+2
пофиксил
в названиях свойств и объектов
перезалил архив
в названиях свойств и объектов
перезалил архив
0
в yii crud генератор делает нечто подобное
+3
Посмотрев лог в конец убедился, что функционал в demo надо отключать.
0
Произошла ошибка при выполнении файла /usr/local/www/hosting/yamozg.ru/www/adm/Adm/Table.php на строке 72:
Ошибка выполнения запроса CREATE TABLE ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = MYISAM; к БД: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = MYISAM' at line 1
Ошибка выполнения запроса CREATE TABLE ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = MYISAM; к БД: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = MYISAM' at line 1
0
плохо, что нельзя Делать свойствами селекты (ENUM с точки зрения БД)
0
ух, тут больше нельзя, чем можно :)
0
Вообще это решается так
1. либо дополнительная таблица + связь с таблицей в исходной. будет селект
2. либо так — добавляется свойство типа «связь с таблицей», которому в «Дополнительная информация» пишется
что-то типа
values2=a:3:{i:0;s:3:«Раз»;i:1;s:3:«Два»;i:2;s:3:«Три»;}
синтаксис:
values2=… тут сериализованны массив вида:
array('0' => 'Раз',
'2' => 'Два')
пример можно посмотреть — поле Тестовый селект в Оргтехнике www.yamozg.ru/adm/adm_3/
1. либо дополнительная таблица + связь с таблицей в исходной. будет селект
2. либо так — добавляется свойство типа «связь с таблицей», которому в «Дополнительная информация» пишется
что-то типа
values2=a:3:{i:0;s:3:«Раз»;i:1;s:3:«Два»;i:2;s:3:«Три»;}
синтаксис:
values2=… тут сериализованны массив вида:
array('0' => 'Раз',
'2' => 'Два')
пример можно посмотреть — поле Тестовый селект в Оргтехнике www.yamozg.ru/adm/adm_3/
0
И не очень удобен сквозной список свойств, а не фильтрованный по объекту
0
Спасибо! Давно хотел что-нибудь подобное найти.
+2
Поздравляю, вы изобрели Scaffolding ;-)
+4
MySQL error 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `x` WHERE (`id`=0)' at line 1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `x` WHERE (`id`=0)' at line 1
+1
у меня такой же велосипед есть. Без сортировки, зато с поддержкой enum/set/прав пользователей/связок многие ко многим и прочей фигней.
Но код написан мной 5 (пять!) лет назад и мне очень не нравится.
Дважды пытался переписать заново на ext.js, но не доходили руки.
Но код написан мной 5 (пять!) лет назад и мне очень не нравится.
Дважды пытался переписать заново на ext.js, но не доходили руки.
0
Тоже баловался на заданную тему — получился конструктор админок, но реального применения не нашел.
Оказалось удобнее писать текстовые конфиги, на основе которых будет генериться часть приложения.
Оказалось удобнее писать текстовые конфиги, на основе которых будет генериться часть приложения.
0
Doctrine admin generator вам в помощь. Никаких велосипедов, граблей и мучений. А если хостинг не поддерживает — значит, либо хостинг Вам не подходит, либо проект настолько маленький, что админку и с нуля за 5 минут написать можно :).
З.Ы. Не в коем случае прошу не расценивать как критику. С точки зрения самообразования подобные велосипеды очень многим часто бывают нужны.
З.Ы. Не в коем случае прошу не расценивать как критику. С точки зрения самообразования подобные велосипеды очень многим часто бывают нужны.
0
Вам определенно нужно попробовать Symfony.
-2
Сейчас прибежит толпа планктона со словами «А вот в (сюда подставить какой-нибудь готовый инструмент типа RoR или Симфони) такое мог когда вы еще под стол пешком ходили. Хватит изобретать велосипеды.» либо «Ну для общего развития полезно.».
+4
Посмотрел код, несколько советов:
1. Плюньте на cp1251, переходите на utf8.
2. Оператор "@" очень медленный. Вместо "$hn = @$_POST['hn'];" пишите "$hn = isset($_POST['hn'])? $_POST['hn']: null;"
3. Старайтесь комментировать проекты на тех языках, на которых они комментируются изначально. В проекте сейчас сильно перемешан русский и английский.
4. Если проект имеет систему локализации, то при доработке следуйте ей, вместо того, чтобы просто писать по-русски.
5. Старайтесь не перемешивать PHP и HTML.
6. addslashes — очень плохая функция. "$title = addslashes($_GET['title']); if($obj->query(«insert into adm_favorites(user,url,title) values('{$_SERVER['PHP_AUTH_USER']}','$url','$title')»)){" — не используйте addslashes, используя вместо этого эскейпинг, специфичный для конкретной БД (например, с помощью PDO). Кроме того, не используйте конкатенацию строк в запросах, используйте абстракцию для вставки параметров в запрос. Хотя бы такую простую как: dklab.ru/lib/DbSimple/
1. Плюньте на cp1251, переходите на utf8.
2. Оператор "@" очень медленный. Вместо "$hn = @$_POST['hn'];" пишите "$hn = isset($_POST['hn'])? $_POST['hn']: null;"
3. Старайтесь комментировать проекты на тех языках, на которых они комментируются изначально. В проекте сейчас сильно перемешан русский и английский.
4. Если проект имеет систему локализации, то при доработке следуйте ей, вместо того, чтобы просто писать по-русски.
5. Старайтесь не перемешивать PHP и HTML.
6. addslashes — очень плохая функция. "$title = addslashes($_GET['title']); if($obj->query(«insert into adm_favorites(user,url,title) values('{$_SERVER['PHP_AUTH_USER']}','$url','$title')»)){" — не используйте addslashes, используя вместо этого эскейпинг, специфичный для конкретной БД (например, с помощью PDO). Кроме того, не используйте конкатенацию строк в запросах, используйте абстракцию для вставки параметров в запрос. Хотя бы такую простую как: dklab.ru/lib/DbSimple/
+5
Поделитесь?
0
Доделаю — поделюсь (чуть-чуть осталось). Правда опасаюсь, что меня тут же смешают с говном за очередной велосипед.
0
Видимо, моему посту нужно было появиться, чтобы появился Ваш комментарий :)
+1
готово?
0
Скачайте здесь azumi.ru/azumi.zip (~10Мб — тяжеловат из-за тестовых картинок в демо-сайте)
Как установить: файл install-ru.txt в корне.
Как установить: файл install-ru.txt в корне.
0
Да, будьте осторожны и имейте ввиду, что это не готовая система, а просто моя игрушка. Я ее особо не рефакторил и не проверял.
0
не понимаю, и что здесь сносного?
+1
Sign up to leave a comment.
QuickAdm — быстрые универсальные админки