Galeria zdjęć - guziczki: następne/poprzednie

Odpowiedz Nowy wątek
2015-02-16 21:46
0

Witam serdecznie,
Mam taką tabelę ze zdjęciami:

 CREATE TABLE IF NOT EXISTS `zdjecia` (
`id` bigint(20) UNSIGNED NOT NULL,
  `user` int(11) NOT NULL,
  `nazwa` varchar(85) COLLATE utf8_unicode_ci DEFAULT NULL,
  `datadodania` datetime NOT NULL,
  `enable` int(11) NOT NULL,
  `idgalerii` int(11) NOT NULL,
  `miejsce` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
  `obrazek` varchar(65) COLLATE utf8_unicode_ci DEFAULT NULL,
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE `zdjecia`
MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=1;

ALTER TABLE `zdjecia`
 ADD UNIQUE KEY `id ` (`id `), ADD UNIQUE KEY `id_2` (`id `), ADD KEY `id_3` (`id `);

Mam zapytanie wyświetlające listę zdjęć:

 SELECT *  FROM zdjecia  WHERE user =:user AND miejsce=:miejsce  ORDER BY nazwa ASC;

Po kliknięciu w zdjęcie chce zrobić guziczki następne/poprzednie.

Jak powinny wyglądać zapytania dla tych guziczków?

Kombinuję z czymś takim:


SELECT  id FROM zdjecia  WHERE miejsce=:miejsce  id > :idobecne   ORDER BY nazwa ASC, id DESC LIMIT 1 // następne
SELECT  id FROM zdjecia  WHERE miejsce=:miejsce  id < :idobecne   ORDER BY nazwa ASC, id DESC LIMIT 1 // poprzednie

Tylko nie bardzo chce mi to działać sad.gif Tzn działa, ale np. e przypadku gdy mam 3 zdjęcia:

  • foto 1
  • foto 2
  • foto 3

i wybiorę foto 1 - to skrypt "widzi" zdjęcia "poprzednie" (np. 2) z kolei gdy wybiorę foto 3 - to skrypt "widzi" jedno zdjęcie "następne" - po czym poprawne wyświetla poprawnie...

Mógłby ktoś mi pomóc z tymi zapytaniami?

Bardzo proszę o pomoc,
Northwest

edytowany 1x, ostatnio: Northwest, 2015-02-16 21:54

Pozostało 580 znaków

2015-02-16 21:56

Stwórz podzapytanie które zwróci Ci IDzdjęcia najmniejsze większe od obecnego.

SELECT  id FROM zdjecia  WHERE miejsce=:miejsce and id = (Select min(id) from zdjecia where id>:idobecne)

Potraktuj powyższe jako pseudocode nie sprawdzałem z syntaxem mysql, ale mam nadzieje, że złapiesz ideę.Pozdrawiam

Pozostało 580 znaków

2015-02-16 22:03
0

a w drugą stronę?:) zamiast MIN -> MAX?

Tak, tylko zmień też znak większości itd.Pytasz z ironią bo czegoś nie zrozumiałem, czy po prostu chcesz się upewnić? - Mikajlo8 2015-02-16 22:04

Pozostało 580 znaków

2015-02-16 22:09
0

chciałem się upewnić :)
Pomogło, dziękuję bardzo :)))

ps. dlaczego miałem być ironiczny? :|

hahaha, po prostu jestem 16 godzinę na nogach i nie byłem pewny, czy nie przeoczyłem czegoś oczywistego i dlatego spytałem ;-) Pozdrawiam ;-) - Mikajlo8 2015-02-16 22:14

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0