Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Trzy wartości klucz next prev dla kategorii
Malinaa
post
Post #1





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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.

Go to the top of the page
+Quote Post
Malinaa
post
Post #3





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
tehaha
post
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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

Ten post edytował tehaha 20.12.2010, 19:54:24
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 1.10.2025 - 21:50