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

Форум MySQL

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

 

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

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

тема: выборка из базы данных
 
 автор: VYB   (22.08.2007 в 10:18)   письмо автору
 
 

Здравствуйте!
Пишу сейчас фотогаллерею,возникли такие вопросы,подскажите пожалуйста:
1)В директории лежат загруженные фотки.Необходимо вывести последние n добавленных фото.Мне посоветовали считать имена файлов-фоток в массив и их дату создания,затем отсортировать и вывести значения.Но я думаю,что массива не хватит на такое кол-во файлов,да и к тому же это будет "грузить" сервер.
Я решил сделать так:создать бд mysql и завести таблицу,в которой хранится имя файла и дата создания.Дату создания генерируется ф-ей filectime()
Каким образом теперь можно извлечь из бд последние добавленные файлы,ведь опять придется считывать в массив данные о файлах,возможно его переполнение.Может как-нибудь можно ограничить выборку из базы?
2)допустим,решили проблему с выборкой из бд,возможно ли сделать так,чтобы не делать запрос каждый раз к бд,когда страница загружается, а только если данные таблицы обновлялись(т.е была добавлена фото),иными словами,можно ли оптимизировать выборку,чтобы нагрузка на сервер была минимальной и как это сделать?

   
 
 автор: Faraon   (22.08.2007 в 10:28)   письмо автору
 
   для: VYB   (22.08.2007 в 10:18)
 

1)
Можно так

SELECT * FROM table ORDER BY data DESC LIMIT 10 

   
 
 автор: koder_lis   (22.08.2007 в 10:33)   письмо автору
 
   для: VYB   (22.08.2007 в 10:18)
 

1)

$sql_select = "SELECT * FROM name_table  order by data desc LIMIT $n";

$n - количество выводимых фоток
data - имя колонки где содержится дата фотки, должна иметь тип date

2) можно использовать кеширование, т.е. записывать результат в файл txt, а затем считывать оттуда

   
 
 автор: Faraon   (22.08.2007 в 10:44)   письмо автору
 
   для: koder_lis   (22.08.2007 в 10:33)
 

>data - имя колонки где содержится дата фотки, должна иметь тип date
Автор записывает в это поле дату формирования файла посредством функции filectime()
которая возвращает дату в UNIX-формате, и по этому поле может быть числовым типа INT

   
 
 автор: VYB   (22.08.2007 в 10:56)   письмо автору
 
   для: Faraon   (22.08.2007 в 10:44)
 

Огромное спасибо! Очень помогли!

   
Rambler's Top100
вверх

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