Jak zrobic link do nastepnego i poprzedniego zdj?

0

Sytuacja teoretyczna:
Mam 345 zdjec w albumie na swojej stronie, wiec wyswietlam po 30 zdj a na dole mam pasek paginacji i no wiadomo
1 | 2 | 4 | 5 | 6 | 7 itd. Teraz chce zrobic tak ze po nacisnieciu na zdjecie otwiera sie nowa strona i pojawia sie owo zdjecie
a obok na pasku mam guizk POPRZEDNIE i NASTEPNE
Jak wybrac z bazy kolejne i poprzednie zdj zakladajac ze nie sa one po kolei w tabeli bazy danych bo moze byc duzo userow

moj pomysl jest nastepujacy

  1. po kliknieciu na zdj , pobieram wszystkie zdj z danego albumu i wstawiam je do tablicy
  2. tablica z kolejnymi indexami ma w wartosci ID zdjecia
  3. wyszukuje id mojego kliknietego zdj i pbieram INDEX z tablicy
  4. pod link poprzednie wstawiam INDEX[znaleziony - 1] a nastepne INDEX[znaleziony + 1]

niby ok ale co jesli byloby milion zdjec? troche lipa ze pobiera sie milion zdj do tablicy co kazde przelaczenie zdj
Jest na to jakis lepszy spoosb

0

Naprawdę nie rozumiem, dlaczego niektórzy łączą naukę PHP oraz SQL.
Tak, istnieje takie słowo kluczowe: limit, które umożliwia utworzenie paginacji.

0

ale jak ten limit polaczyc z tymi potrzebnymi wynikami ?

0

Zadaj konkretne pytanie.

0

Konkretne pytanie brzmi tak

Tabelka z rekordami jaka istenieje

ID ID_USERS LINK
1 24 links1
2 24 links1
3 7 links1
4 24 links1
5 24 links1
6 24 links1
7 8 links1
8 8 links1
9 11 links1
10 11 links1
11 24 links1
12 3 links1
13 24 links1
14 24 links1
15 2 links1

Zatem ktoś klika w zdj o ID = 11 jeżeli teraz chce zrobić paginacje do tego zdjecia to robie sobie select taki

SELECT * FROM images WHERE ID_USERS = 24;

i dostaje wynik:

ID ID_USERS LINK
1 24 links1
2 24 links1
4 24 links1
5 24 links1
6 24 links1
11 24 links1
13 24 links1
14 24 links1

Czyli wybieram wszystkie zdjecia na ktorych moge zrobic paginacje dla danego usera
Jak zatem zrobic select zeby miec tylko taki wynik

6 | 24 | links1
11 | 24 | links1
13 | 24 | links1

0

dobra zrobilem mozna skasowac

0

Jakby kogoś interesowało to aby wybrać jaki obrazek powinien być nastepny w naszym przypadku nastpenym rekordem jest rekord o ID = 13 zatem musze wybrac z tabeli rekord o id > 11

(SELECT min(id) FROM images WHERE id_user = 24 AND id > 11)

Czyli podzapytanie wybierze najpierw najmniejszy rekord gdzie user id = 24 i id zdjecie jest > 11 czyli w naszym przypadku wysweitli nam id = 13

(SELECT max(id) FROM images WHERE id_user = 24 AND id < 11)

A tu analogicznie wybierz najwiekszy rekoerd gdzie id usera = 24 i id jest < od 11 czyli dokladnie 6

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