2014-12-30 2 views
0

Я работаю над проектом, где я должен показать лидеров игроков. Но когда написано ниже код, он показывает ряды с 2, 4, 6, 8, ... Но не с нечетными номерами. Может ли кто-нибудь сказать мне: «Что в этом плохого?»Странное поведение функции php/mysql

$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; 
+0

он показывает даже и вы хотите, чтобы показать нечетное право? –

+0

Я хочу показать оба. @ яша –

ответ

3

Вы выполняете query3 два раза и displying данных, полученные от второго исполнения

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

Да! Вот и все. Я был ослеплен :) Спасибо –

+1

Не забудьте поставить флаг как разрешенный :) – Bobot

Смежные вопросы