php / mysql函数的奇怪行为

时间:2014-12-30 02:01:57

标签: php mysql sql variables mysqli

我正在开展一个项目,我必须展示玩家的排行榜。但是当写下面的代码时,它显示了2,4,6,8的排名......但不是奇数排名。谁能告诉我“这有什么问题?”

$query1_string = "CREATE VIEW Leaderboard AS SELECT Name, Points, PhoneNo
                  FROM user ORDER BY Points DESC";
$query2_string = "set @rank = 0";
$query3_string = "SELECT @rank := @rank + 1 as Rank, Name, Points
                  FROM Leaderboard";
$query5_string = "DROP VIEW Leaderboard";

// Doing the queries
$query1 = mysqli_query($con, $query1_string) or die(mysqli_error($con));
$query2 = mysqli_query($con, $query2_string) or die(mysqli_error($con));
$query3 = mysqli_query($con, $query3_string) or die(mysqli_error($con));
// Initializing the count
$count = 0;

//Making an array of strings including Rank, Name and Points of the Top 5 Players
while (($count < 5) && (mysqli_fetch_array($query3, MYSQL_NUM))) {
    $row = mysqli_fetch_array($query3, MYSQL_NUM);
    $results[$count] = $row[0] . "   " . $row[1] . "    " . $row[2];
    $count++;
}

// Dropping the view.
$end_query = mysqli_query($con, $query5_string) or die(mysqli_error($con));

//Returning the array
$leader = implode("\n", $results);
echo $leader;

1 个答案:

答案 0 :(得分:3)

您正在执行两次查询并显示从第二次执行中检索到的数据

while (($count < 5) && (mysqli_fetch_array($query3, MYSQL_NUM))) {
    $row = mysqli_fetch_array($query3, MYSQL_NUM);