Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Poprzedni i następny wiersz
geogis
post 16.02.2007, 15:01:13
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.03.2005

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
SongoQ
post 16.02.2007, 19:49:39
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Mozesz to uzyskac przez zastosowanie sortowania i LIMIT w manualu masz przyklady


--------------------
Go to the top of the page
+Quote Post
geogis
post 17.02.2007, 11:27:46
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.03.2005

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


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??
Go to the top of the page
+Quote Post
nospor
post 17.02.2007, 11:44:58
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://forum.php.pl/index.php?showtopic=50705&hl=


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
geogis
post 17.02.2007, 15:41:45
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.03.2005

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


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
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:46