Kongi93
(Konradnie1)
18 Marzec 2013 16:38
#1
Witam.
Mam w bazie danych tabele id, nazwa, ranking.
1-Jaś-530
2-Karol-2100
3-Jan-1800
I jak na stronie wyświetlić pozycje Jasia??
Wiem jak to zrobić wyświetlając wszystkie rekordy posortowane ale jak nie chce wyświetlać wszystkich rekordów tylko sprawdzić pozycje konkretnego usera??
Niech ktoś pomoże.
adpawl
(adpawl)
18 Marzec 2013 17:21
#2
SELECT ranking FROM tabela WHERE id=1
Kongi93
(Konradnie1)
18 Marzec 2013 17:51
#3
Ale w tabeli ranking każdy user ma ileś punktów które zdobywa i ia chce sprawdzić które miejsce ma dany user np Jaś
userrpl
(userrpl)
18 Marzec 2013 17:59
#4
Będziesz to pobierał do PHP, czy tylko z ciekawości chcesz podglądnąć w bazie?
Kongi93
(Konradnie1)
18 Marzec 2013 18:01
#5
Chce wyświetlić na stronie.
Jak ktoś się zaloguje to żeby było napisane:
Twoja pozycja w rankingu: pozycja
userrpl
(userrpl)
18 Marzec 2013 18:11
#6
To zacznij od pobrania rekordów względem największej ilości punktów.
SELECT `nazwa`,`ranking` FROM `twoja nazwa tabeli` ORDER
by `ranking` desc;
Potem pobierasz sobie to do tablicy i wyświetlasz.
userrpl
(userrpl)
18 Marzec 2013 18:31
#8
Załóżmy, że masz pobraną tablice numeryczną o nazwie $array_user z samymi nazwami userów za pomocą tego zapytania:
SELECT `nazwa`` FROM `twoja nazwa tabeli` ORDER
by `ranking` desc;
Następnie stosujesz na tej tablicy numerycznej funkcje array_keys()
$positions_user = array_keys ($array_user, 'Jaś');
if ($positions_user[0] == 0)
{
echo 'Jesteś 1 w rankingu';
}
else
{
echo 'Jesteś '.$positions_user[0].' w rankingu';
}[/code]
Kongi93
(Konradnie1)
19 Marzec 2013 19:40
#9
A moze być tak:
$result=mysql_query("SELECT nazwa FROM `user` ORDER BY 'ranking' DESC");
if(!empty($result))
{
$num = mysql_num_rows($result);
}
else
{
$num = 0;
}
$i=0;
while ($i < $num)
{
$nazwa=mysql_result($result,$i,"nazwa");
if($nazwa==$login)
{
echo"$i";
}
$i++;
}
Czy to jest poprawny i wydajny kod?? Nie znam się na mysql dlatego nie wiem jak to pobrac.