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

Форум PHP

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

 

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

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

тема: Счетчик загрузок и коментарии к файлам.
 
 автор: skor   (07.01.2008 в 14:25)   письмо автору
 
 

есть папка с файлами
down/
upload/

в них есть подпапки и собственно сами файлы.
down/1/1024x768/0001.jpg
down/3/0001.jpg
upload/avto/5/0001.jpg

дак вот собственно вопрос как лушче идентифицировать файлы в бд?

я нечего лучше не придумал кроме того как брать путь $pat = md5(upload/avto/5/0001.jpg);
и использовать его в бд в качестве первичного ключа...
таблица коментов - `pat`, `comment`
таблица загрузок `pat`, `count`, `count_all`
но такая реализация получается очень накладной.

подскажите какие нибудь другие идеи =) буду благодарен.

   
 
 автор: skor   (07.01.2008 в 17:19)   письмо автору
 
   для: skor   (07.01.2008 в 14:25)
 

Ну неужели нет другого способа и мне придется грузить базу длинными where?

   
 
 автор: Unkind   (07.01.2008 в 17:28)   письмо автору
 
   для: skor   (07.01.2008 в 17:19)
 

А зачем хеш? Тем более хеш пути. Вы что, сначала будете получать путь, а затем данные файла из БД? Присвойте каждому файлу числовой идентификатор, поставьте auto_increment.
По запросу файла через идентификатор Вы можете получить и данные файла (путь к нему, кол-во загрузок и проч.) и комментарии к нему.

   
 
 автор: skor   (07.01.2008 в 17:40)   письмо автору
 
   для: Unkind   (07.01.2008 в 17:28)
 

Ну вобщем простой скрипт листинг директорий, при выводе определенного файла на страницу, датеся запрос в бд (путь к файлу). Если там еще нет такого файла то создается новая запись для данного файла, если уже есть то увеличиваем счетчик загрузок.

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

md 5 необязательно, просто чтоб первичный ключ был 32 символа, и небыло всяких слешей точек и прочего.

   
 
 автор: Unkind   (07.01.2008 в 17:43)   письмо автору
 
   для: skor   (07.01.2008 в 17:40)
 

Значит надо переписать скрипт таким образом, чтобы листинг проводился не из директории, а из таблицы файлов. Иначе да, только хеш.

   
 
 автор: skor   (07.01.2008 в 17:43)   письмо автору
 
   для: Unkind   (07.01.2008 в 17:28)
 


>Присвойте каждому файлу числовой идентификатор, поставьте auto_increment.

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


>По запросу файла через идентификатор Вы можете получить и данные файла (путь к нему, кол-во загрузок и проч.) и комментарии к нему.

В том то и проблема что не придумать другого идентификатора кроме как самого пути.

   
 
 автор: Unkind   (07.01.2008 в 17:46)   письмо автору
 
   для: skor   (07.01.2008 в 17:43)
 

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

   
 
 автор: skor   (07.01.2008 в 17:50)   письмо автору
 
   для: Unkind   (07.01.2008 в 17:46)
 

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

   
 
 автор: Unkind   (07.01.2008 в 17:55)   письмо автору
 
   для: skor   (07.01.2008 в 17:50)
 

Каждый раз - это как? Вы файл, наверное, заливаете один раз? Может это просто лень? :)

   
 
 автор: skor   (07.01.2008 в 23:51)   письмо автору
 
   для: Unkind   (07.01.2008 в 17:55)
 

Ну обновляю сайт частенько ) Поэтому и говорю каждый раз =)

   
 
 автор: Unkind   (08.01.2008 в 09:56)   письмо автору
 
   для: skor   (07.01.2008 в 23:51)
 

Ну так рекурсивно обходить директории с новыми файлами будет машина, а не Вы.

   
Rambler's Top100
вверх

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