Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL] Zapytanie zwracające pozycję w tabeli, czy istnieje?
gszymans
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 21.11.2007

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


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ć?

Ten post edytował gszymans 15.10.2008, 13:18:28


--------------------
biuro detektywistyczne
witraż
Go to the top of the page
+Quote Post
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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





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




http://nospor.pl/mysql-faq-n25.html#faq-8


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

"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
gszymans
post
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 21.11.2007

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


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 @


--------------------
biuro detektywistyczne
witraż
Go to the top of the page
+Quote Post
nospor
post
Post #5





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




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ą


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

"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
pyro
post
Post #6





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


dodaj kolumnę id, daj jej auto_increment int, przeladuj i poprostu:

  1. SELECT id FROM ranking WHERE punkty = 3;


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
nospor
post
Post #7





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




@pyro przeczytak doklanie, dokladnie i jeszcze raz dokladnie w czym problem winksmiley.jpg


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

"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
pyro
post
Post #8





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


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


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
gszymans
post
Post #9





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 21.11.2007

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


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?


--------------------
biuro detektywistyczne
witraż
Go to the top of the page
+Quote Post
mike
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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 &
Go to the top of the page
+Quote Post
nospor
post
Post #11





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




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?


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

"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
Wykrywacz
post
Post #12





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


  1. SELECT rank() over (ORDER BY punkty) pozycja, punkty, pozycja FROM TABLE


Jak chcesz konkretów to wyrzucasz jeszcze where'a

Ten post edytował Wykrywacz 15.10.2008, 14:18:00
Go to the top of the page
+Quote Post
drPayton
post
Post #13





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


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

Ten post edytował drPayton 15.10.2008, 14:22:46
Go to the top of the page
+Quote Post
gszymans
post
Post #14





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 21.11.2007

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


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)

Ten post edytował gszymans 16.10.2008, 14:44:14


--------------------
biuro detektywistyczne
witraż
Go to the top of the page
+Quote Post
nospor
post
Post #15





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




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


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

"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

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 Aktualny czas: 21.08.2025 - 07:25