Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите направить мозг в нужное русло

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: требуется дельный совет
LEONeso
Отправлено: 12 Июля, 2010 - 19:46:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




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

Папки расположены следующим образом:
- главная папка
-- под папка
--- конечная папка

---- изображения в конечной папки
--- конечная папка
---- изображения в конечной папки
-- под папка
--- конечная папка

---- изображения в конечной папки
... и т.п. кол-во без ограничений.

Фактически написал с горем пополам код, который фактически все это делает, во всяком случае главную затею, но дальнейшее развитие достаточно проблематична т.к. требуется более сложные условия (по крайней мере для меня т.к. не гуру, а ученик).

Так вот. Код собирает все данные при запросе к нему т.е. если пользователь открыл страницу с данным кодом и параметры _get позволяют ему узреть "под папки" (которые являются ссылка в "конечные папки"), то код сканирует директорию и выводит все папки ему на страничку, тоже самое он делает и с остальным древом, до финальной стадии "показа изображений"... по идее это все будет происходить долго ведь все зависит от скорости интернета и загруженности сервера, пользователю возможно неохота ждать эти секунды. Ведь каждый запрос - это начало обработки цикла и сбора информации, далее вывод его на страницу в красивом для пользователя виде. PHP код идет потоком, выполняя все условия, которые встречаются ему на пути.

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

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

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

Мне нужна помощь с тем, как заставить код правильно анализировать директорию, снимать с неё дату и записывать название+дату в таблицу, при первом запросе пользователя. Я опасаюсь того ,что запросов в секунду может быть несколько и будут дубликаты в БД, возможно придется еще описывать проверку на дубликаты и чистка таблиц БД.

Я буду очень благодарен, за любую помощь с моей идеей, которую я описал в максимально сжатом виде т.к. в голове просто "вулкан" мыслей, а скрипт, всего лишь один, но очень важный, как для меня, так и для будущих его пользователей.
--
Спасибо.
--
ps: конечно я буду задавать дополнительные вопросы (множество из них я уже задавал в других темах форума по разным частям кода), но не сразу, я обычно обдумываю и перевариваю каждый пост, который адресован мне.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
ALEN
Отправлено: 12 Июля, 2010 - 20:03:48
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




LEONeso
1) пишешь функцию чтения каталога и вывода изображения
2) Перебираешь директорию, если попадается каталог то используешь функцию
 
 Top
JustUserR
Отправлено: 12 Июля, 2010 - 20:53:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




LEONeso пишет:
Код собирает все данные при запросе к нему т.е. если пользователь открыл страницу с данным кодом и параметры _get позволяют ему узреть "под папки" (которые являются ссылка в "конечные папки"), то код сканирует директорию и выводит все папки ему на страничку, тоже самое он делает и с остальным древом, до финальной стадии "показа изображений
То есть ваш PHP-скрипт должен давать пользователю возможность просматривать некоторое дерево каталогов - и выбирать определенный web-путь по которому пользователь сможет просмотреть галерею изображений При этом вы не хотите сразу показывать пользователю допустимое дерево каталогов - и хотите обеспечить возможность просмотра вглубь с выбором вложенных директорий
При таком решении задачи действительно может возникнуть некоторое ожидание в момент раскрытия очередной подпапки - однако в зависимости от числа вложенных директорий можно обойти эту проблему по-разному - например при запросе определенной директории можно заранее запрашивать также и список всех ее подпапок первого уровня - и пока пользователь будет изучать открывшийся список папок и решит выбрать одну из них то следующий уровень откроется почти мгновенно То есть смысл предлагаемого метода заключается в динамической загрузке списка вложенных папок на web-страницу - в тот момент когда пользователь изучает содержимое вновь раскрытой папки - при этом важно обеспечить не рекурсивное раскрытие всех вложенных директорий - а только подпапок первого уровня для каждой из директорий представленных в соответствующем дереве как максимально раскрытый подуровень


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
LEONeso
Отправлено: 12 Июля, 2010 - 23:39:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Представим более разумное объяснения данного скрипта:
- главная папка
-- название категории
--- название галереи
---- изображения галереи
*

*жирные элементы могут встречаться множество раз.

1.) Главная директория нигде не выводится, только упоминается в коде.
2.) Выводим названия папок "категории" ($_GET['cat'])
3.) Далее выводим названия "галереи" ($_GET['gal'])
4.) Далее выводим изображения выбранной галереи (index.php?cat=name_cat&gal=name_gal)
--
Учитывая что нам нужно узнать название, дату, кол-во (изображений), размер (архива), то тут видно, что получается полноценный скрипт галереи, который должен самостоятельно заполнять все поля в шаблоне цикла, но я подумываю о заполнения базы данных скриптом, чтобы пользователи не ждали выполнения цикла и всех условий скрипта, а видели цикл вывода данных из таблицы бд.

Верно ли я мыслю? или изменения не стоят свеч и стоит дорабатывать, то что есть и делать чистый php скрипт?


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
JustUserR
Отправлено: 13 Июля, 2010 - 01:02:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




LEONeso пишет:
Учитывая что нам нужно узнать название, дату, кол-во (изображений), размер (архива), то тут видно, что получается полноценный скрипт галереи, который должен самостоятельно заполнять все поля в шаблоне цикла
В вашем случае создание навигации по дереву директорий для галереи изображений является еще более простой задачей - поскольку у вас имеется фиксированное число уровней вложенности в иерархии В то же время параллельных вложенных директорий может быть достаточно много - и предложенный выше шаг по предварительной буферазации на строне клиента подуровней первого рода может показаться достаточно ресурсоемким - тем не менее внутри списка папок одноно уровня можно огранизовать дополнительную постраничную буферазацию по проктурке - то есть пользователь начинает прокручивать список директорий ниже и они продолжают динамически подгружаться Такой подход при значительно большом числе элементов позволяет сэкономить ресурсы - и например используется в технологии PowerPivot которая позволяет работать с табличным представлением огромного числа записей как раз за счет подгрузки содержимого во время прокрутки


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB