![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 27.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Czy istnieje jakiś sposób na sprawdzenie indexu/numeru rekordu? Tzn. którym jest z kolei który spełnia wymogi zapytania?
Mam tabelę, a w niej miedzy innymi numer_osoby. I teraz potrzebuję pozycję/numer/index rekordu gdzie osoba ma numer XXX. Niestety nie moge po prostu napisać select numer _osoby from tabela, bo potrzebuje tej pozycji po odfiltrowaniu pewnych danych. Konkretnie chodzi o znalezenie pozycji tego rekordu (czy jest pierwszy, drugi czy dziesiąty) wśród danych zwróconych przez to zapytanie. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 167 Pomógł: 2 Dołączył: 1.07.2009 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 27.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiesz.
Przyklad: SELECT numer_osoby FROM tabela WHERE wiek<=1 AND costam=costam ORDER By 'miejsce zamieszkania' i to zpytanie zwraca mi np. 50 wyników posegregowanych wedlug miejsca zamieszkania. Czyli mam takie wyniki: (...) 1234455 1234 653 56785 66 44565 654 (...) I teraz chce POZYCJĘ rekordu gdzie numer równa się 66. Czyli w tym wypadku: (...) 1234455 <- 1 pozycja 1234 653 56785 66 <-piąta pozycja ( tego szukam) 44565 654 (...) |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował Darti 27.12.2009, 19:11:08 -------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zakładam, że wyciągnięte dane trzymasz w tablicy, np. o nazwie $dane, więc
lub w zależności od tego, jak dokładnie zbudowana jest tabela, a co za tym idzie jak wygląda tablica z wyciągniętymi danymi. Ten post edytował darko 27.12.2009, 19:16:29 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 27.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie chodzi o to żeby nie pobierac tych wszystkich danych jakie generuje to zapytanie a jednynie pozycje tego jednego rekordu. W niektórych przypadkach zapytanier to generuje kilka tysięcy danych, a mi chodzi tylko o pozycję jednego z nich. Myślałem raczej o jakiejs f-cji w mysql a nie kodzie php
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To:
Właśnie chodzi o to żeby nie pobierac tych wszystkich danych jakie generuje to zapytanie a jednynie pozycje tego jednego rekordu. W niektórych przypadkach zapytanier to generuje kilka tysięcy danych, a mi chodzi tylko o pozycję jednego z nich. Myślałem raczej o jakiejs f-cji w mysql a nie kodzie php przeczy temu: Cytat Niestety nie moge po prostu napisać select numer _osoby from tabela, bo potrzebuje tej pozycji po odfiltrowaniu pewnych danych. Albo ja czegoś nie rozumiem, albo przeczysz sam sobie. Może spróbuj jeszcze raz dokładnie wytłumaczyć o co Ci chodzi. -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 27.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Listing:
SELECT numer_osoby FROM tabela WHERE wiek<=1 AND costam=costam ORDER By 'miejsce zamieszkania' i to zpytanie zwraca mi np. 50 wyników posegregowanych wedlug miejsca zamieszkania. Czyli mam takie wyniki: (...) 1234455 1234 653 56785 66 44565 654 (...) I teraz chce POZYCJĘ rekordu gdzie numer równa się 66. Czyli w tym wypadku: (...) 1234455 <- 1 pozycja 1234 653 56785 66 <-piąta pozycja (TO JEST jedyna rzecz na której mi zależy w całej operacji) 44565 654 (...) Rozwiazanie jakie proponujecie to ostatecznosc. Mam pobierać 4,5 tyś rekordów żeby określić położenie jedengo z nich? Myślałem o czymś bardziej ambitnym. Inaczej mówiąc jak przekształcić 'listing' żeby był jak najbardziej wydajny. Najlepiej jakby było to jedno zapytanie mysql. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
hmm to skorzystaj z CREATE TEMPORARY TABLE i jako jedną z kolumn zrób indeks_temp z auto_increment a drugą wynik Twojego zapytania, następnie wydaj zapytanie SELECT indeks_temp FROM tabela_temp where numer_osoby = 66
Pamiętać należy, że to wymaga persistent connection (mysql_pconnect). Ten post edytował Darti 27.12.2009, 20:16:15 -------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 5.07.2025 - 08:27 |