我该如何解决php中的此代码问题

时间:2018-09-15 22:14:22

标签: php mysql arrays while-loop

我想使用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

2 个答案:

答案 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"