Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Zapytanie zwracające pozycję w tabeli, czy istnieje?
Forum PHP.pl > Forum > Przedszkole
gszymans
Witam,
Czy istnieje jakieś zapytanie które zwraca którą pozycję w wyniku zapytania zajmuje dany rekord?

Znaczy tak: mam tabelę ranking i w niej 2 kolumny user i punkty i chciałbym wyciągnąć na której pozycji znajduje się dany user pod względem liczby punktów.

Czy czy sql'u coś istnieje takiego czy php trzeba jakąś funkcję zrobić?
mike
Pozycję wg. czego? Masz na myśli jakiś identyfikator? id?
Jeśli masz na myśli o pozycją pod którą baza wrzuci rekord a w tabeli nie zdefiniujesz klucza, który identyfikuje rekordy to nie, nie ma takiej możliwości.

Proszę poprawić tytuł wątku na zgodny z zasadami pisania w dziale Przedszkole
nospor
http://nospor.pl/mysql-faq-n25.html#faq-8
gszymans
Do mike

Jak pisałem powyżej " pod względem liczby punktów"

czyli sortuję sobie wyniki pod względem liczby uzyskanych punktów i teraz chciałbym się dowiedzieć na której pozycji jest dany user co ma punktów np. 3.

Do nspor

Znalazłem na podanej stronie coś takiego:
CODE
set @id=5,@nr = 0, @idnr = 0;

select @idnr as nr from

(SELECT @nr:=@nr+1,if(ID=@id, @idnr := @nr,@idnr=@idnr),ID FROM tabela where jakiespole ='jakiswarunek' order by jakiespole jakiessortoanieASClubDESC) podsel where podsel.ID = @id;

może będzie pasować ale muszę przez to przegryźć winksmiley.jpg, zwłaszcza te znaki @
nospor
Cytat
Znalazłem na podanej stronie coś takiego
Link co ci podalem wskazywal dokladnie wlasnie na to, wiec nie wiem skad te "znalazlem" winksmiley.jpg

@ oznacza ze masz do czynienia ze zmienną
pyro
dodaj kolumnę id, daj jej auto_increment int, przeladuj i poprostu:

  1. SELECT id FROM ranking WHERE punkty = 3;
nospor
@pyro przeczytak doklanie, dokladnie i jeszcze raz dokladnie w czym problem winksmiley.jpg
pyro
Cytat(nospor @ 15.10.2008, 14:27:38 ) *
@pyro przeczytak doklanie, dokladnie i jeszcze raz dokladnie w czym problem winksmiley.jpg


... sorry jestem po kursie szybkiego czytania i chyba nie wyszlo mi to na dobre ;P
gszymans
do nospor

no niestety dla mnie przedszkolaka nie daję rady przerobić tego zapytania na moje potrzeby sad.gif
i czemu jest tam @ dla zmiennej a nie $, czym to się różni?
mike
Cytat(gszymans @ 15.10.2008, 15:02:11 ) *
i czemu jest tam @ dla zmiennej a nie $, czym to się różni?
Różni się to tym czym PHP różni się od SQL. Dwa różne języki.
Kod, który dostałes od nospora to zappytanie w języku SQL a tam zmienne zaczynają się od @ a nie od &
nospor
Cytat
i czemu jest tam @ dla zmiennej a nie $, czym to się różni?

z tego samego powodu co tir ma duuuze kola a maluch ma malutkie.
Dla mysql zmienna oznacza sie poprzez @ a dla php poprzez $

Cytat
no niestety dla mnie przedszkolaka nie daję rady przerobić tego zapytania na moje potrzeby
Kombinuj, kombinuj winksmiley.jpg
A jak przerabiasz?
Wykrywacz
  1. SELECT rank() over (ORDER BY punkty) pozycja, punkty, pozycja FROM TABLE


Jak chcesz konkretów to wyrzucasz jeszcze where'a
drPayton
Cytat(Wykrywacz @ 15.10.2008, 15:16:39 ) *
  1. SELECT rank() over (ORDER BY punkty) pozycja, punkty, pozycja FROM TABLE


Jak chcesz konkretów to wyrzucasz jeszcze where'a



w MySQL?!?

Hmmm, w sumie autor nie pisał że to mysql winksmiley.jpg
gszymans
No sprawa nadal nierozwiązana sad.gif

Nie bardzo rozumiem co to za zmienne drPayton (zwłaszcza pozycja) sad.gif

Może tak: istnieje tabela (mysql) o nazwie ranking w której mam tylko kolumny user i punkty.
chciałbym w php napisać na której pozycji (znaczy jak posortuje po liczbie punktów) pod względem liczby zdobytych punktów jest dany user.

do nospor

CODE
set @id=5,@nr = 0, @idnr = 0;

w tym rozumiem iż w php ma być
CODE
$id=5,$nr = 0, $idnr = 0;

ale czemu id=5?

oraz co to za warunek? if(ID=$id, $idnr := @nr,@idnr=@idnr)
nospor
Cytat
w tym rozumiem iż w php ma być
Ale ty masz to zrobic jako mysql. W php masz uzyc mysql_query() by wykonac zapytanie mysql.

Cytat
ale czemu id=5?
To byl przyklad. W przykladzie interesowala nas pozycja rekordu o id=5
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.