Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] zapytanie - wyliczajace ktore z kolei jest pole
Forum PHP.pl > Forum > Przedszkole
bastek8989
Witam

Jak zrobic zapytanie zliczajace aktualna pozycje POLA w wynikach?

Chodzi oto ze mam tabelke zalozmy z userami gdzie kazdy ma okreslona ilosc punktow, i chce zeby zapytanie zliczalo mi ktory z kolei jest user z okreslona iloscia punktow w stosunku do pozostalych....


pozdrawiam

----------------------
Poprawiłem literówkę w
temacie. : )
---
~strife
plisek
moze przesortuj to w bazie, wg punktow i pobierz numer klucza danej krotki
pozdrawiam
bastek8989
przeciez numery klucza sie nie zmieniaja O_O chocbym niewiem jak posortowal
nospor
  1. SET @klucz:=0;
  2. SELECT @klucz:=@klucz+1 FROM tabela ORDER BY pole;

No popatrz, a jednak numer klucza sie zmienia, wszystko zalezy od tego co nazywasz kluczem winksmiley.jpg
bastek8989
  1. <?php
  2. $sql = "@klucz:=0; SELECT @klucz:=@klucz+1 from users ORDER BY wynik WHERE username
    ='Bastek'"
    ;
  3. $result = mysql_query($sql);
  4. $wynik=mysql_fetch_array($result);
  5. ?>



to chyba jest zle....

Chodzi o to zeby policzyl ile userow ma wiecej punktow od usera Bastek i na tej podstawie obliczyl aktualne miejsce w rankingu...


pls help
nospor
Cytat
$sql = "@klucz:=0; SELECT @klucz:=@klucz+1 from users ORDER BY wynik WHERE username='Bastek'";

Ja ci podalem zapytania mysql, nie moja wina ze ty oba zapytania chcesz jednym mysql_query wykonac. Mysql_query() wykonuje tylko jedno zapytanie naraz. Musisz to rozbic na dwa mysql_query() - kazde dla kazdego zapytania

ps: pozatym nawet kopiowac nie umiesz. Moje zapytanie wygladalo inacze.... zjadles "set"
bastek8989
  1. <?php
  2. mysql_query("set @klucz:=0");
  3. $sql = "select @klucz:=@klucz+1 from users order by wynik";
  4. $result = mysql_query($sql);
  5. $wynik=mysql_fetch_array($result);
  6.  
  7. echo $wynik['klucz'];
  8. ?>


nie dziala :|

questionmark.gif?

nie bardzo lapie jak to dziala... dlatego robie bledy
nospor
  1. <?php
  2. //....
  3. $wynik=mysql_fetch_array($result);
  4. print_r($wynik);
  5. ?>

Co wyswietla? smile.gif

pozatym moje zapytanie zwraca ci wszystkie rekordy, a ty pobierasz tylko pierwszy
Kicok
A nie łatwiej ci będzie zrobić:
  1. SELECT COUNT(*)+1
  2. FROM users WHERE (wynik > (SELECT wynik FROM users WHERE username = 'Bastek'))
bastek8989
strzal w 10 smile.gif))) dzieki

pozdrawiam
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.