Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Poprzedni i następny wiersz
Forum PHP.pl > Forum > Bazy danych > MySQL
geogis
Witam!

Zaczynam nowy wątek na temat w sumie juz omawiany wielokrotnie, ale przypadku o którym chce napisać nie znalazłem sad.gif

Mam tabele 'osoby':

ID | imie | wiek
1 | adam | 22
2 | krzys | 21
4 | grzes | 22
6 | piotr | 23
7 | slawek | 22

Powiedzmy ze wyswietlam na stronie informacje o grzesiu - ID=4
Chcialbym zrobic przyciski 'poprzedni' i 'nastepny' ktore beda ladowaly informacje o poprzedniej/nastepnej osobie wg kolejnosci wiekowej (ORBER BY wiek) czyli w nastepujacej kolejnosci:

2 | krzys | 21
1 | adam | 22
4 | grzes | 22
7 | slawek | 22
6 | piotr | 23

W jaki sposob uzyskc pod przyciskiem 'poprzedni' - adama a pod 'nastepny' - slawka?? worriedsmiley.gif
SongoQ
Mozesz to uzyskac przez zastosowanie sortowania i LIMIT w manualu masz przyklady
geogis
Nie do konca łapie jak to osiagnąć. Bo manipulujac ORDER BY i LIMIT to mozesz najwyzej ustawic ciag w taki sposob:

2 | krzys | 21
1 | adam | 22
4 | grzes | 22
7 | slawek | 22
6 | piotr | 23

ale jak okreslisz ze adam jest akurat wczesniej ?

Przykladowo do przegladarki wpada zmienna ID = 4

Strona wyswietla z bazy:

SELECT id, imie, wiek FROM osoby WHERE ID=4;

Jak mozna wysortowac zeby wyciagnac z tej strony adama?

Nie dasz warunku WHERE id<4 bo wartosci nie sa uszeregowane, i nie dasz WHERE wiek=22 LIMIT 1 bo to nie ma sensu...

Jakas podpowiedz??
geogis
Nie no poddaje sie. Nie wychodzi mi to w ogole.

Zrobilem wg tamtego wzoru:

  1. (SELECT id, imie, wiek FROM osoby WHERE wiek <= $wiek ORDER BY wiek DESC LIMIT 0, 1)
  2. UNION
  3. (SELECT id, imie, wiek FROM osoby WHERE id=$id)
  4. UNION
  5. (SELECT id, imie, wiek FROM osoby WHERE wiek >= $wiek ORDER BY wiek ASC LIMIT 0, 1)

ale to nie dziala. Bawilem sie warunkami WHERE i ORDERem ale nie mam pojecia jak okreslic poprzedni czy nastepny wiersz jak id i tak nie jest uszeregowany i nie moge dac warunku WHERE id>$id czy id<$id.

Pomozcie!! blinksmiley.gif
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.