Witam serdecznie,
Mam taką tabelę:
CREATE TABLE IF NOT EXISTS `zdjecia` (
`bf_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`idusera` int(11) NOT NULL,
`idgalerii ` int(11) NOT NULL,
`nazwa` varchar(85) COLLATE utf8_unicode_ci DEFAULT NULL,
`miejsce` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
`obrazek` varchar(65) COLLATE utf8_unicode_ci DEFAULT NULL,
UNIQUE KEY `bf_id` (`bf_id`),
UNIQUE KEY `bf_id_2` (`bf_id`),
KEY `bf_id_3` (`bf_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
Mam 2 listy zdjęć/galerie (różniące się sortowaniem):
1. SELECT bf_id, obrazek, miejsce, nazwa FROM zdjecia where idusera=:idusera and miejsce=:miejsce ORDER by nazwa ASC;
2. SELECT obrazek, idgalerii, nazwa, miejsce, bf_id FROM zdjecia where idgalerii=:idgalerii ORDER by nazwa ASC;
Potrzebuję dla obu list w podglądzie zdjęcia zrobić guziczki “następne zdjęcie” oraz “poprzednie zdjęcie”.
Mam aktualnie taki kod dla pkt1:
SELECT bf_id FROM zdjecia where miejsce=:miejsce and bf_id = (SELECT MIN(bf_id) FROM zdjecia WHERE bf_id>:idobecne) ORDER by nazwa ASC LIMIT 1;
SELECT bf_id FROM zdjecia where miejsce=:miejsce and bf_id = (SELECT MAX(bf_id) FROM zdjecia WHERE bf_id<:idobecne) ORDER by nazwa ASC LIMIT 1;
oraz dla pkt 2:
SELECT MIN(bf_id) as bf_id FROM zdjecia where bf_id>:bf_id and idgalerii=:idgalerii ORDER by nazwa ASC LIMIT 1;
SELECT MAX(bf_id) as bf_id FROM zdjecia where bf_id<:bf_id and idgalerii=:idgalerii ORDER by nazwa ASC LIMIT 1;
Użytkownik może:
a) wejść w dowolne miejsce w galerii aby je podejrzeć
B) lista zdjęć oraz strzałki poprzednie zdjęcie/następne zdjęcie muszą mieć taką samą kolejność w wyświetlaniu.
W chwili obecnej strzałki nie pokrywają się z kolejnością
Ma ktoś może pomysł jak naprawić moje zapytania? Jak one powinny wyglądać żeby to wyglądało poprawnie?
Bardzo proszę o pomoc,
Northwest