Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Генератор html-кода для представления записей БД
 
 автор: Деркачев   (22.07.2008 в 16:31)   письмо автору
 
 

Здравствуйте, PHP-программисты

Я еще новичок, поэтому добросовестно искал готовые решения для такой казалось бы стандартной задачи - представить записи некоторой таблицы БД в виде html-таблицы с определенными заголовками
столбцов, желательно с фиксацией шапки таблицы при вертикальной прокрутке записей и фиксацией
первых колонок при горизонтальной прокрутке столбцов. Не нашел таких решений, но прежде чем приниматься за самостоятельную разработку РНР-класса, хотел бы спросить - плохо я искал ?
В моем представлении такой РНР-класс должен иметь свойства, в которых задаются имена таблицы и ее полей, значения которых должны быть представлены в html-таблице, параметры стилей представления и т.д.

   
 
 автор: Valick   (22.07.2008 в 19:59)   письмо автору
 
   для: Деркачев   (22.07.2008 в 16:31)
 

Здравствуйте, я не программист.
Какой класс? Выборка из базы и создание хтмл таблицы- это 10 строк кода.
А вот насчёт прокрутки неясно... если вниз крутанули, то в бок уже нельзя? Какой смысл в такой прокрутке? Может вы имели ввиду отсутствие прокрутки шапки по вертикали, а левой колонки по горизонтали?
(в любом случае это уже яваскрипт)

   
 
 автор: Деркачев   (23.07.2008 в 08:56)   письмо автору
 
   для: Valick   (22.07.2008 в 19:59)
 

1. О прокрутке - я имею ввиду такой режим просмотра таблицы на экране монитора, кокй обеспечивает, например EXCEL, когда в его таблице закрепляешь строку и колонку - все строки выше и все колонки левее при прокрутке остаются видимыми

2. О коде. Поверьте, я хоть и новичок в PHP, но матерый программист в VFP, Си и подобные представления записей таблицы программировал не раз, поэтому и считаю, что класс для подобной задачи нужен и в PHP, т.к. реально это не 10 строк кода, а много больше, если говорить об удобном для просмотра, навигации, отборов и т.д. представлении записей. В VFP, например мой класс на основе GRID составляет примерно 1000 строк

   
 
 автор: GeorgeIV   (23.07.2008 в 09:05)   письмо автору
 
   для: Деркачев   (23.07.2008 в 08:56)
 

2. О коде. Поверьте, я хоть и новичок в PHP, но матерый программист в VFP, 
Си и подобные представления записей таблицы программировал не раз, поэтому и считаю,
 что класс для подобной задачи нужен и в PHP, т.к. реально это не 10 строк кода, 
а много больше, если говорить об удобном для просмотра, навигации, отборов и т.д. 
представлении записей. В VFP, например мой класс на основе GRID составляет примерно
 1000 строк

PHP - это надстройка над Cи, и большая часть этих 1000 строк уже будет внутри функций.
Это может и не 10 строк кода, но 100 уж точно хватит.
И создание класса в данном случае сомнительно, это рядовая функция будет с неколькими параметрами.

   
 
 автор: Valick   (23.07.2008 в 10:05)   письмо автору
 
   для: Деркачев   (23.07.2008 в 08:56)
 

Я Вам верю.
Но 10 (утрированно) строк РНР кода (генерящего "тонну" хтмл) на стороне сервера и 90 строк яваскрипт на стороне клиента в сумме и дадут "тонна"+90 строк)) Каким образом яваскрипт попадёт на компьютер конечного пользователя (согласен скорее всего придётся генерить всё тем же РНР, а это + ещё 50 строк) это уже другой вопрос.
Естественно о конкретном количестве строк речь пока не идёт.

   
 
 автор: GeorgeIV   (23.07.2008 в 11:50)   письмо автору
 
   для: Valick   (23.07.2008 в 10:05)
 

PHP код не генерит тонну хтмл, иначе он был бы вообще не нужен. Он генерит только то, что выдается в браузер клиента, а ява скрипт придет клиенту в хтмл коде

   
 
 автор: Valick   (23.07.2008 в 12:07)   письмо автору
 
   для: GeorgeIV   (23.07.2008 в 11:50)
 

Можно генерить явускрипт, а можно подключить внешним файлом, я это имел ввиду.

   
 
 автор: Деркачев   (23.07.2008 в 18:27)   письмо автору
 
   для: Valick   (23.07.2008 в 12:07)
 

Думаю, тему можно закрыть. Вижу, что общее мнение - не разрабатывать класс, а для каждой таблицы БД писать свой код.
Вчера я все-таки нашел в Инете несколько скриптов для администрирования БД MySql как раз с функциями, о которых я говорил. Самый простой пакт скриптов содержит 300 строк кода, а более сложный, с большим количеством параметров настроек (стилей представления, количества колонок, их ширины и т.д. и.т.д ) имеет объем 450 К, что примерно составит 5000 строк кода
Так что класс нужен
Скажу, что найденные скрипты меня не удовлетворили по причине полного отсутствия комментариев и описаний (в сложном скрипте, правда, есть объемный readme на англ.языке, но думаю, что и англичанину с трудом удастся разобрать его)

О яве. Я не сторонник явы, т.к. не хочу, чтобы функционал моего сайта зависел от браузера пользователя. Вот дизайнерские фокусы можно доверить яве - даже если у пользователя ява отключена, то он всего лишь не оценит мои художественные вкусы, но информацию от меня получит, работать с моими формами сможет, отправить на сервер сфою информацию сможет

Так что готов поделится будущей разработкой PHP-класса

   
 
 автор: sms-send   (23.07.2008 в 19:11)   письмо автору
 
   для: Деркачев   (23.07.2008 в 18:27)
 

Подобное без JS работать не сможет, т.к. действия происходят уже на стороне клиента.

   
 
 автор: GeorgeIV   (24.07.2008 в 10:11)   письмо автору
 
   для: Деркачев   (23.07.2008 в 18:27)
 

Где то вы глубоко заблужлдаетесь. И причем тут администрирование БД, если нужно просто нужно отформатировать сформированный вывод у клиента. И предыдущий автор прав, без явы все равно не обойтись, PHP на стороне клиента просто нет!

   
 
 автор: mihdan   (24.07.2008 в 10:59)   письмо автору
 
   для: Деркачев   (22.07.2008 в 16:31)
 

http://www.dhtmlgoodies.com/scripts/table-widget/table-widget.html

   
 
 автор: GeorgeIV   (24.07.2008 в 15:30)   письмо автору
 
   для: mihdan   (24.07.2008 в 10:59)
 

это извращение сортировать данные, которые получаются из базы, с помощью HTML и javascript! Проще отследить клик на заголовке и аяксовым запросом получить отсортированный список прямо из базы! минимум кода и заморочек

тот пример приведен скорей для текстовых данных. и то я бы их всосал в базу, а потом уже манипулировал, как надо

   
 
 автор: Trianon   (24.07.2008 в 15:54)   письмо автору
 
   для: GeorgeIV   (24.07.2008 в 15:30)
 

Как минимум - спорно.
Вы уже получили выборку.
Теперь хотите разглядеть её и так и эдак.
Зачем нагружать сервер и гонять траффик еще раз, если можно обойтись клиентскими мощностями?

   
 
 автор: GeorgeIV   (24.07.2008 в 16:11)   письмо автору
 
   для: Trianon   (24.07.2008 в 15:54)
 

а нагружать клиента таким кодом?
как показывает практика, обработка БД на сервере быстрее чем обработка на клиенте,
тем более что может быть искажена информация при таком варианте - если сортируем список с другого конца, то либо мы ддолжны ВЕСЬ список сразу загнать клиенту, либо получить сортировку только того, что ВИДИМ, вводя клиента в заблуждение

   
 
 автор: Trianon   (24.07.2008 в 16:25)   письмо автору
 
   для: GeorgeIV   (24.07.2008 в 16:11)
 

>а нагружать клиента таким кодом?
А клиента можно нагружать любым кодом. Потому что клиентов много, а сервер - один.

>как показывает практика, обработка БД на сервере быстрее чем обработка на клиенте,
обработка на сервере вообще не будет запрошена.
Быстродействие алгоритмов клиента и сервера сравнивать вообще-то бессмысленно.
Не говоря уже о том, что Вы забываете про канал и издержки на нем.

>тем более что может быть искажена информация при таком варианте -

Это уж как представить клиенту выборку.

Еще раз. Я лишь протестовал против ярлыка "извращение" на методике вполне реальной и во многих случаях оправданной.

   
 
 автор: GeorgeIV   (24.07.2008 в 16:37)   письмо автору
 
   для: Trianon   (24.07.2008 в 16:25)
 

не буду спорить, не работаю с БД, где вся база занимает несколько строчек на экране, что показать список с конца достаточно его пересортировать на экране.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования