![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Mam bazę kilkuset osób.
Przeglądając dane jednej osoby (dany rekord) chciałbym mieć możliwość przejśca do jego poprzednika jak i następnika. W google znalazłem kilka przykładów, jak to zrobić, jednak wszystkie te przykłady zakładały sortowanie po id. W moim przypadku mam sortowanie po nazwisku i imieniu. Dla przykładu mamy tabelę: 1 | Ab | C 2 | Da | M 3 | C | X 4 | S | Z 5 | B | K Po posortowaniu wg nazwiska będzie wyglądała tak: 1 | Ab | C 5 | B | K 3 | C | X 2 | Da | M 4 | S | Z Zakładając, że moim bieżącym rekordem jest ten o id=3, jak znaleźć id poprzednika i następnika? Może zamiast w sql lepiej to zrobić z poziomu PHP? Ten post edytował 115750 14.11.2012, 11:45:02 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Coś nie bardzo mi ten przykłada działa. Zamiast 2 wartości (prev i next) otrzymuję 3 kolumny i ponad tysiąc rekordów (IMG:style_emoticons/default/sad.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Napiszę tak jak ty:
A mi działa. Zwraca to co trzeba. Czy zadowala cię taka odpowiedź? Zapewne nie. Napiszę teraz jak normalny człowiek: To pokaż może swoje zapytanie po zrobieniu tego jak miałem w poradadniku, to zobaczymy co sknociłeś. Prawda że lepiej? Prawda (IMG:style_emoticons/default/smile.gif) Na przyszłość oprócz "nie działa" pokaż też od razu kod, jaki masz po zmianach, bo wróżek nie ma. ps: no ale pobawmy się we wróżki. Skoro zwraca ci 3 kolumny zamiast dwóch to stanąłeś na drugim zapytaniu. Zauważ, że mój kod ma 3 zapytania a ty dane masz odebrać właśnie z tego trzeciego zapytania (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Napiszę teraz jak normalny człowiek: To pokaż może swoje zapytanie po zrobieniu tego jak miałem w poradadniku, to zobaczymy co sknociłeś. ps: no ale pobawmy się we wróżki. Skoro zwraca ci 3 kolumny zamiast dwóch to stanąłeś na drugim zapytaniu. Zauważ, że mój kod ma 3 zapytania a ty dane masz odebrać właśnie z tego trzeciego zapytania (IMG:style_emoticons/default/smile.gif) Dziękuję, że mimo wszystko napisałeś jak normalny człowiek (IMG:style_emoticons/default/smile.gif) Moje zapytanie po przeróbce wygląda tak:
Rzeczywiście są tylko 2 zapytania ale nie za bardzo wiem, skąd to 3-cie zapytanie miałem wziąć. W międzyczasie próbowałem obejść ten problem za pomocą widoków i tabel tymczasowych jako pośrednika. Wtedy do takiego widoku/tabeli można by użyć tych sposobów, które nie uwzględniają sortowania. Później przetestuję to rozwiązania do końca. Ten post edytował 115750 14.11.2012, 12:39:03 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie,
SET - pierwsze zapytanie SELECT - drugie zapytanie SELECT - trzecie zapytanie (IMG:style_emoticons/default/smile.gif) Czyli są wszystkie 3 zapytania. Każde z nich masz oddzielnie wykonać przez mysql_query() a dane masz odebrać tylko z ostatniego |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:12 |