Hallo,

Ik heb een vraagje over een top 10
Ik ben bezig met een profiel samen te stellen. Elke speler heeft een aantal punten.
Nu moet ik bij elke speler zijn rank te weten komen.

Stel 1 speler heeft 5000 punten en de andere speler heeft 10000 punten. Dan moet de speler met 5000 punten rank 2 hebben. Hoe kom ik dat te weten uit de database. Ik weet dan de query:

<?php
$resultRank = mysql_query("SELECT * FROM bank ORDER BY money ASC");
?>

Maar dan?
<?php
$resultRank = mysql_query("SELECT * FROM bank ORDER BY money ASC LIMIT 0, 10");
if(!$resultRank)
{
"Er is iets fout gegaan met het ophalen van de gegevens.";
}
else
{
$i = '1';
while($row = mysql_fetch_assoc($resultRank))
{
echo $i .". ". $row['username'] ."<br />";
$i++;
}
}
?>

Niet getest, maar zo krijg je een overzicht van de top 10, met een nummertje ervoor..
Ja maar ik moet geen top 10..

Iedere speler heeft een eigen profiel. In het profiel staat een kopje Rank.
En in die rank kun je zien hoeveelste je staat met het aantal punten dat je hebt. Dus in dit geval staat de speler met 5000 punten 2e, dus krijgt hij de rank 2.

SELECT COUNT(*) AS rank WHERE money > 50000


Die 50000 moet dan het geld staan van die speler, hij telt alle spelers die meer geld hebben dan hij. Dat kan wel betekenen dat iemand die even veel geld heeft, ook dezelfde rank heeft.
Ik kom dan uit op dit:

<?php
$queryMoney = mysql_query("SELECT * FROM bank WHERE nickname = '$resultBlog2->nickname'");
$resultMoney = mysql_fetch_object($queryMoney);

$queryRank = mysql_query("SELECT COUNT(id) AS bank WHERE money > '$resultMoney->money'");
$resultRank = mysql_result($queryRank,0);

echo $resultRank;
?>

@nico: Helaas snap ik daar niet zo veel van
En werkt dat?
Ik vind het namelijk heel leuk dat je daarop uitkomt, maar wat moeten wij ermee?
<?php
$queryRank = mysql_query("SELECT COUNT(id) AS bank WHERE money > (SELECT * FROM bank WHERE nickname = '".$resultBlog2->nickname."')");
$resultRank = mysql_result($queryRank,0);

echo $resultRank;
?>

Ik weet niet welke MySQL versie je gebruikt, maar latere versies ondersteunen ook subquery's
Laat maar ikheb het al gevonden.

Aantal mensen tellen die meer punten hebben dan jij. Stel dat zijn er 3, dan tel je er 1 bij op en dat is dan je rank.

Bedankt iig!

Reageren