我想使用mysql从php的“得分”表中按得分对用户进行排名。我写了这个实际上在phpMyAdmin的SQL选项卡中运行的查询:
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, name, score
FROM scores
ORDER BY score DESC;
但是我无法弄清楚,如何在我的php代码中使用它。我尝试过:
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo $row["score"]. $E ." ". $row["name"]. $N ;
echo PHP_EOL;
echo PHP_EOL;
}
} else {
echo "0 results";
}
我认为我的问题出在我的while循环上。但我不知道该怎么办:(
PleaseHelp(); :(
人的问题解决了。我们的亲爱的朋友@ mallik1055注意到问题出在查询和即时消息发送多个请求。然后我注意到phpMyAdmin会自动运行与PHP不同的多个查询,因此我尝试了mysqli_multi_query并成功了,非常感谢<3
答案 0 :(得分:0)
应该可以。
$rank = 0;
$rank = $rank+1;
$sql = "SELECT rank, name, score FROM scores ORDER BY score DESC";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
if ($row > 0) {
while($row > 0) {
echo $row["score"].$E." ".$row["name"].$N.;
echo PHP_EOL;
echo PHP_EOL;
}
} else {
echo "0 results";
}
答案 1 :(得分:0)
numRand = (rand()%((6-1)+1)) + '0';
是您提取的行中的元素,就像$row["rank"]
和"score"