Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Ссылки "вперед" и "назад"

Обсуждение темы Ссылки "вперед" и "назад" в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Вообщем я делаю сейчас фотогалерею. В данный момент у меня встала проблема показа ссылок "предыдущая" и "следующая" фотографии... Суть в следующем: Имеется база ...


Закрытая тема
 
Опции темы
Старый 08.01.2006, 23:16   #1
Вообщем я делаю сейчас фотогалерею. В данный момент у меня встала проблема показа ссылок "предыдущая" и "следующая" фотографии... Суть в следующем:
Имеется база фоток с примерно в которой указаны номер фотки (уникальный для всех), категория-альбом (0, 1, 2 ...), имя и т.д....
Надо сделать ссылку на предыдущую фотку (номер меньше чем у текущей, но категория таже). В данный момент я сделал цикл в котором просматриваются записи (начиная от текущей) в поисках меньшего номера в тойже категории...
Вроде всё работает, но... Фотки расположены в разброс (т.е. может сначала идти фотка первой категории потом 3-й, потом о5 первой..). И при большом количестве фоток получаеся 10ок запросов, что не есть хорошо....
Вот нужно это оптимизировать... Помогите плиз...

Вот код для перыдущей фотки
PHP код:
$next true$tmp $file_id-1;
while (
$next AND ($tmp >= 0)) 
    {
        
$SQLQuery "SELECT * FROM gal_list WHERE (id=".$tmp--." AND cat=".$cat_id.")";
        
$db -> query($SQLQuery); 
        if (
$db -> next_record())
        {
            
$file_back "href=\"/album/".$x."/"$db -> f("name") ."\"";
            
$next false;
        }
        else continue;
    }
$tpl -> set_var("link_back"$file_back); 
 
Старый 08.01.2006, 23:16
Ссылки
Старый 09.01.2006, 00:50   #2
1. Глупо называть одну переменную $SQLQuery, а другую - $file_back.
2. Пиши комментарии - тебе же легче будет.
3. Тебе надо четко сформулировать задачу.
Вот тебе ответ:

'Select * from gal_list where cat='.$cat_id.' and id<'.$tmp.' order by id desc limit 1'

Выполнение этого запроса даст один из двух результатов:

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

В зависимости от результат ты либо выводишь кнопку "назад", либо нет.

Кстати, в твоем запросе скобки не нужны - они служат вообще-то для группировки условий, а не просто для того, чтобы они были.
 
Старый 09.01.2006, 01:27   #3
dantistus, Большое спасибо!! Всё работает... Можешьп проверить - http://max.astro-azbuka.info/album

Для следующей фотки я сделал соот-но
SELECT * FROM gal_list WHERE cat='".$cat_id."' AND id>'".$file_id."' ORDER BY id ASC LIMIT 1

Насчет имен переменных - просто работу с базой я выдрал из какого-то скрипта и переделавать там имена очень нудно...
 
Старый 09.01.2006, 01:27
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
<script language="text/javascript" charset="utf-8"... handler HTML, CSS, JavaScript 4 18.07.2011 17:16
"Оцените, господа!" или "Когда клиент через год переоценивает взгляды" ()@ZI$ Зал дебютантов 15 30.11.2005 09:50
Продажа билетов лотерей "Золотой ключ", "Русское Лото", "ТВ Бинго-шоу" Florid Кальянная 1 22.08.2005 19:24
Редактирование всплывающей подсказки (тэг "alt" или "title") Денисон HTML, CSS, JavaScript 2 01.05.2005 19:34
Очень бы хотелось услышать советы "бывалых" и "знающих" tim Зал дебютантов 10 10.05.2004 09:48


Текущее время: 16:13. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум