Попытка получить предыдущие строки с порядком соединения слева - PullRequest
0 голосов
/ 22 марта 2012

Сайт содержит изображения. Эти изображения могут быть оценены. Когда изображение ранжируется, значение может быть 1,2 или 3. Для сохранения рейтинга у меня есть таблица ranking_items. Изображения отображаются в виде миниатюр. При нажатии на миниатюру открывается полная страница изображения с кнопками «назад» и «далее». когда изображения упорядочены по идентификатору, то вперед и назад все в порядке. но теперь я хочу, чтобы мои изображения были упорядочены по рангу AND, когда я открываю полноразмерное изображение, мне нужны кнопки «Назад» и «Далее».

Вот как я запрашиваю все изображения

SELECT images.id AS imageID 
FROM images
LEFT JOIN ranking_items ON images.id=ranking_items.image_id 
ORDER BY ranking_items.rank, images.id ASC

Я создаю эскизы здесь. ссылка в миниатюре выглядит так:

<a href='viewImage.php?id=$imageID'><img /></a>

Когда я загружаю изображение, вот как я его запрашиваю:

SELECT id
FROM images
WHERE id='$_GET["id"]'

Итак, для моей следующей кнопки «назад» мне нужно что-то вроде:

SELECT images.id AS imageID
FROM  images
LEFT JOIN ranking_items ON images.id=ranking_items.image_id 
WHERE images.id < '".$imageID."'
ORDER BY ranking_items.rank_id, images.id ASC LIMIT 1

Но, похоже, это работает неправильно. Любая помощь будет оценена.

1 Ответ

1 голос
/ 25 октября 2013

По словам Аскера, это сработало:

SELECT images.id AS imageID
FROM  images
LEFT JOIN ranking_items ON images.id=ranking_items.image_id 
WHERE ( 
          (images.id < ".$image->imageID ." AND ranking_items.rank_id='".$image->rank_id."') 
      OR 
           ranking_items.rank_id < '".$image->rank_id."'
       )
ORDER BY ranking_items.rank_id DESC,images.id  DESC LIMIT 1
...