2013-04-25 4 views
0

У меня есть таблица под названием pvpstats. Он имеет 4 столбца; id, имя, убийства и смерти. Я должен получить 3 наивысших значения от «убивает» и сортировать их от наивысшего до самого низкого и включать также имя. Как 3-топ статистика! И потому, что я новичок с MySQL мне нужно шаг за шагом расчитана ...Как получить 3 наивысшего значения из таблицы и распечатать их?

Это как мой .php выглядит на данный момент:

<?php 

$server = "localhost"; 
$dbuser = "usernm"; 
$dbpass = "passwd"; 
$dbname = "pvpstats"; 

mysql_connect($server, $dbuser, $dbpass); 
mysql_select_db($dbname); 

$result = mysql_query("SELECT kills FROM pvpstats ORDER BY kills DESC LIMIT 3"); 
$row = mysql_fetch_assoc($result); 
echo print_r($row,true); 

?> 

Подключение работает и он показывает наивысшее значение, но без имени. И только самый высокий, когда он должен показать 3 высокий

+1

Что работает? Не работает? Какие конкретные вопросы у вас есть? – brbcoding

+0

Соединение работает, и оно показывает наивысшее значение, но без имени. И только самый высокий, когда он должен показывать 3 самых высоких. – user2320856

ответ

1

$row = mysql_fetch_assoc($result); будет только эхо 1 строки

пользователю во время цикла повторить все данные.

1

Ну для одного, вы должны использовать:

print_r($row); 

нет:

echo print_r($row,true); 

* print_r * будет автоматически выводить его, если опустить true переменная, поскольку передача ответа на echo просто избыточна.

Кроме того, поскольку ваш запрос возвращает три строки, вы должны петли через него:

while ($row = mysql_fetch_assoc($result)) { 
    print_r($row); 
    // or if you just want to output the number, use: 
    // echo $row["kills"]; 
} 
-1

, кажется, ваш синтаксис запроса не имеет каких-либо проблем. используйте коды ниже, чтобы найти проблемы.

mysql_connect($server, $dbuser, $dbpass) or die(mysql_error()); 

...

$row = mysql_fetch_assoc($result) or die(mysql_error());