Topic: Mysql rank funkcija
Database(lentele)
id first_name points
1 Bob 12
2 Jane 50
3 Jack 2
4 Bill 10
5 Nick 62
6 Kathy 18
7 Steve 42
8 Anne 52
Skriptas:
<?php
$con = mysql_connect("localhost","root","lol");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("st", $con);
$result = mysql_query("SELECT first_name,points,
@curRank := @curRank + 1 AS rank
FROM person p, (SELECT @curRank := 0) r
ORDER BY points DESC");
$position = "1";
while($row = mysql_fetch_array($result))
{
echo $row['first_name'] . " " . $row['points'];
echo "-->";
echo " Top".$row['rank'];
echo "<br />";
$position++;
}
mysql_close($con);
?>
Gaunu:
Nick 62--> Top1
Anne 52--> Top2
Jane 50--> Top3
Steve 42--> Top4
Kathy 18--> Top5
Bob 12--> Top6
Bill 10--> Top7
Jack 2--> Top8
Taigi gaunu top rank sistemos pagal taskus bendra grupe.
Dabar noriu suzinoti betkokio nario top tarkim id=1 vartotojo
Pavyzdziui :
Padarau taip
<?php
$con = mysql_connect("localhost","root","lol");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$id = "1"; //noriu zinoti viena nario rank is visos lenteles
mysql_select_db("st", $con);
$result = mysql_query("SELECT first_name,points,
@curRank := @curRank + 1 AS rank
FROM person p, (SELECT @curRank := 0) r WHERE id='$id'
ORDER BY points DESC");
$position = "1";
while($row = mysql_fetch_array($result))
{
echo $row['first_name'] . " " . $row['points'];
echo "-->";
echo " Top".$row['rank'];
echo "<br />";
$position++;
}
mysql_close($con);
?>
Gaunu :
Bob 12--> Top1
Raso kad priklauso Top1 nors realiai grupeje yra tik 6estas pagal vieta .Ka daryti ,kad rodytu normaliai.