Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Problem z wyciąganiem danych.
kowalik1
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 17.02.2009

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


Witam. Zrobiłem sobie ranking, który używa bazy MySQL. Mam tabele 'users' i są w niej kolumny nick, punkty. Wyświetlam wszystkie wyniki bez problemu używam do tego takiego kodu:

  1. SET @MyRowNum :=0;
  2. SELECT punkty, @MyRowNum := @MyRowNum +1 AS miejsce, nick
  3. FROM users ORDER BY punkty DESC;


Otóż problem w tym, że chciałbym podając tylko nick, pokazać miejsce które zajął by ten użytkownik na tle innych. Dodałem
  1. WHERE nick='admin'


wpisałem tak:

  1. SET @MyRowNum :=0;
  2. SELECT punkty, @MyRowNum := @MyRowNum +1 AS miejsce, nick
  3. FROM users WHERE nick='admin'
  4. ORDER BY punkty DESC;


Wyświetla się tylko admin, ale nie ważne czy będzie mieć nawet 0 punktów, zawsze zajmie 1 miejsce.
Robię coś takiego pod stronkę, żeby po zalogowaniu widzieć na którym jestem miejscu w rankingu.

Tutaj ktoś miał identyczny problem: http://www.experts-exchange.com/Database/M...Q_21039662.html ale żeby zobaczyć odpowiedzi trzeba mieć wykupione konto.
Jakieś pomysły ? Tylko mnie nie odsyłajcie do google bo szukałem długo, a nie mam zbyt wiele czasu bo pisze z kompa od kolegi:/

EDIT:

Znalazłem takie rozwiązanie, niby wszystko działa..

  1. $q = "SELECT punkty, nick from users ORDER BY punkty DESC;";
  2.  
  3. $dane = mysql_query($q);
  4. echo "Miejsce Nick Punkty<br>";
  5. $miejsce = "0";
  6. while( $row = mysql_fetch_array( $dane ) )
  7. {
  8. $miejsce = ($miejsce+1);
  9. IF($row[nick]=="admin"){
  10. echo "<br>";
  11. echo "$miejsce $row[nick] $row[punkty]";
  12. exit();
  13. }
  14. }


Tylko pozostaje mi jedno pytanie, jak długo będzie to przetwarzał serwer jeśli w bazie danych będzie jakieś 5000 rekordów ?

Ten post edytował kowalik1 17.02.2009, 18:45:59
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 13:08