Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Trzy wartości klucz next prev dla kategorii
Forum PHP.pl > Forum > Przedszkole
Malinaa
Wiatm,

nie mogę dojść z napisaniem zapytania.

Chodzi o schemat taki jak jest w galeriach.
Mamy wybrane zdjęcie o jakimś ID (klucz) i dla tego zdjęcia potrzebuje pobrać ID poprzedniego i następnego zdjęcia.
Z tym, że poprzednie i następne zależy od ID Kategorii. Jeśli poprzednie przed kluczowym należy do innej kategorii należy wybrać poprzednie, ale kolejne z tej samej kategorii co ID klucz i analogicznie następne.

Jak napisać takie zapytanie?
tehaha
Tu masz przykład jak to pobrać z bazy danych, aczkolwiek osobiście pobrałbym wszystkie id, zapisał do sesji w postaci tablicy i wtedy łatwo pobierasz ID następnego/poprzedniego zdjęcia, zmniejszając lub zwiększając klucz tablicy o 1

poprzednie ID
  1. "SELECT image_id FROM images WHERE image_id < '$current_id' AND image_category = '$image_category' LIMIT 1"

następne ID
  1. "SELECT image_id FROM images WHERE image_id > '$current_id' AND image_category = '$image_category' LIMIT 1"


oczywiście to przykład uproszczony, więc należy dodać odpowiednie zabezpieczenia.

Malinaa
Próbowałem w ten spsób wcześniej, ale dla poprzednie ID otrzymywałem pierwsze ID (1)
Dodałem do zapytań SELECT MAX i SELECT MIN i teraz jest ok.
Dzięki też za podpowiedź, może i na tablicy byłoby bardziej prawidłowo, ale tak już działa, więc zostaje przy tym.
Odpowiednie zabezpieczenia. Co masz tutaj na myśli?
tehaha
Cytat
Odpowiednie zabezpieczenia. Co masz tutaj na myśli?

ID zdjęcia obecnie wyświetlanego zapewne pobierasz z adresu URL, więc warto sprawdzić czy jest liczbą całkowitą, oraz użyć funkcji mysql_real_escape_string() przy wstawianiu zmiennych do zapytania

zapewne w tamtych zapytaniach przydałoby się jeszcze ORDER BY id
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.