Autor Zpráva
Tomashek
Profil
Dobrý den,
tvořím si galerii a chci zobrazit na stránce zadaný obrázek a odkazy na další a předchozí obrázek. Zkouším to nějak skombinovat jednim sql příkazem, ale nedaří se mně to.
(Jestliže je lepší zavolat více příkazů ( zobrazení obrázku, další obrázek, předchozí obrázek), napište hned a nemusím nic řešit.
Dokázal jsem vytvořit příkaz, který buďto zobrazuje další a předchozí, ale v případě, že je obrázek prvni, nedokáže hodit na poslední (a naopak).
Pak jsem zase vytvořil sql, které neházelo na další a předchozí, ale dokázalo by hodit na první a poslední.
SELECT 
  gallery_images.name,       
  gallery_albums.name AS aName,
  gallery_albums.id AS aId,
  COALESCE(prev.id,'zde max id') AS prev,
  COALESCE(next.id,'zde min id') AS next  
FROM 
  gallery_images
INNER JOIN gallery_albums ON gallery_albums.id=gallery_images.album   
LEFT JOIN (SELECT id FROM gallery_images WHERE id<".$_GET['id']" ORDER BY id DESC LIMIT 1) AS prev ON gallery_images.id=prev.id     
LEFT JOIN (SELECT id FROM gallery_images WHERE id>".$_GET['id']." ORDER BY id LIMIT 1) AS next ON gallery_images.id=next.id        
WHERE                           
  gallery_images.id='".$_GET['id']."'

Jestli by někdo věděl, prosím o radu.
Děkuji
Kajman_
Profil *
SELECT 
  gallery_images.name,       
  gallery_albums.name AS aName,
  gallery_albums.id AS aId,
  COALESCE(prev.id,t.maxid) AS prev,
  COALESCE(next.id,t.minid) AS next  
FROM 
  gallery_images
INNER JOIN gallery_albums ON gallery_albums.id=gallery_images.album   
LEFT JOIN (SELECT id FROM gallery_images WHERE id<".$_GET['id']" ORDER BY id DESC LIMIT 1) AS prev ON gallery_images.id=prev.id     
LEFT JOIN (SELECT id FROM gallery_images WHERE id>".$_GET['id']." ORDER BY id LIMIT 1) AS next ON gallery_images.id=next.id
join (select min(id) minid, max(id) maxid from gallery_images) t       
WHERE                           
  gallery_images.id='".$_GET['id']."'

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0