Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Nr pozycji po sortowaniu
DamianMMC
post 7.04.2017, 23:01:10
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.04.2017

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


Z mySQL pracuję od kilku dni. Szukałem w wielu wątkach, ale jakoś nie mogłem znaleźć odpowiedzi (lub nie widziałem że to jest to), otóż Mam bazę graczy i każdy ma jakąś swoją wartość money. I zrobienie TOP 10 to nie jest problem.
  1. SELECT * FROM stats ORDER BY money DESC LIMIT 10

Ale jak sprawdzić w najprostszy sposób "Twoje miejsce w rankingu to: ...".

Z góry dziękuję za pomoc smile.gif
Go to the top of the page
+Quote Post
nospor
post 7.04.2017, 23:07:33
Post #2





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




http://nospor.pl/mysql-faq.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
DamianMMC
post 8.04.2017, 01:47:35
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.04.2017

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


  1. set @id=5,@nr = 0, @idnr = 0;
  2. select @idnr as nr from
  3. (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;


No dobrze, próbowałem na kilka sposobów ale nie działało mi to poprawnie. Jak powinienem edytować powyższy kod by wkoncu zadziałao (tabela - stats, money - wg tego ma być sortowana topka, uuid - gracza o takim uuid poszukiwana jest pozycja w rankingu.

Wybaczcie ale nie umiem sobie jeszcze z tym poradzić.
Go to the top of the page
+Quote Post
nospor
post 8.04.2017, 10:40:47
Post #4





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




No to pokaz jak to robiles. Skad mam wiedziec gdzie zrobiles blad.I pamietaj, ze kazde zapytanie z tego co tu masz ma byc wykonane oddzielnie w php a nie wszystko naraz


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

"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
DamianMMC
post 8.04.2017, 18:55:06
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.04.2017

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


  1. set @id=5,@nr=0, @idnr=0;
  2. select @idnr as nr from
  3. (SELECT @nr:=@nr+1,if(ID=@id, @idnr := @nr,@idnr=@idnr),ID FROM stats where `name` ='DamianMMC' order by money DESC) podsel where podsel.ID = @id;


Chce wyciągnąć jaki nr w tej liscie ma gracz o nicku 'DamianMMC'. I dlaczego to nie działa?

Ten post edytował DamianMMC 8.04.2017, 19:02:28
Go to the top of the page
+Quote Post
nospor
post 8.04.2017, 19:39:57
Post #6





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




W linku do ktorego ci odeslalem wszystko masz wyjasnione, opisane co jest co. Wszystko to masz nie po chinsku ale po polsku. A mimo to ignorujesz to wszystko i wymyslasz jakies swoje cuda i wielce zdziwiony ze nie dziala.


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

"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
DamianMMC
post 12.04.2017, 21:52:43
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.04.2017

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


Rozpędziłem się, ale teraz wszystko ładnie działa tak jak chciałem.

Teraz jeszcze krótkie pytanie co to tego kodu

  1. SET @id=5,@nr = 0, @idnr = 0;
  2. SELECT @idnr AS nr FROM (SELECT @nr:=@nr+1,IF(ID=@id, @idnr := @nr,@idnr=@idnr),ID FROM stats ORDER BY money DESC) podsel WHERE podsel.ID = @id;


Ta pierwsza linia (set @id=5,@nr = 0, @idnr = 0) wprowadza coś w rodzaju zmiennych tymczasowych na czas danego zapytania?
Co oznacza "as" w tym kontekście? (wiem ze to jest "tak jak")
Co oznacza zawartość tego zawiasu ID=@id, @idnr := @nr,@idnr=@idnr ?
I ostatnie, "podsel" zakończ gdy... ?

Wybaczcie za może mało precyzyjne/ głupie pytania, ale w końcu to dział "Przedszkole" smile.gif
Dzięki za odpowiedź smile.gif
Go to the top of the page
+Quote Post
nospor
post 12.04.2017, 22:02:12
Post #8





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




1) tak
2) as okresla Alias. zamiast durnej nazwy @idnr w wyniku zapytania zobaczysz ladne "nr"
3) Manual mysql IF - jesli prawda to zrob to a jak nie to zrob tamto
4) podsel to jest alias dla podzapytania przed podsel. dzieki temu odwolujemy sie do wynikow tego podzapytania. I tak, konczymy gdy to zapytanie bedzie na etapie szukanego przez nas @id


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

"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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:41