Задать вопрос
@TheDrive

Как вывести с mysql больше одной строки через mysql_fetch_array?

У меня есть бд со статистикой игроков, мне нужно вывести топ 5 игроков, но выводится только один - точнее одну строку.
$result=mysql_query("SELECT * FROM `stats2` ORDER BY skill LIMIT 1,5");
              while($row = mysql_fetch_array($result)){
			  
				$data['place'] = $row['place'];
				$data['nick'] = $row['nick'];
				$data['kill'] = $row['kill'];
				$data['skill'] = $row['skill'];

              }

Вывод в шаблонизаторе:
<div class="ipsSideBlock clearfix">
<h3>Топ игроков</h3>
	<table class="ipb_table">
	<if test="$data['connect'] == TRUE">
		<thead class="progress">
			<tr class="header">
			<th width="1%">Место</th>
			<th width="30%">Ник</th>
			<th width="2%"><div align="center"><span rel="tooltip" data-placement="top" title="Скилл" style="display:block;">Скилл</span></div></th>
			<th width="1%"><div align="center"><span rel="tooltip" data-placement="top" title="Убийств">Убийств</span></div></th>
			</tr>
		</thead>
	</table>
	<table class="ipb_table">
		<thead class="progress">
			<tr class="header">
				<th width="17%">{$data['place']}</th>
				<th width="10%">{$data['nick']}</th>
				<th width="30%"><div align="center"><span rel="tooltip" data-placement="top" style="display:block;">{$data['skill']}</span></div></th>
				<th width="1%"><div align="center"><span rel="tooltip" data-placement="top">{$data['kill']}</span></div></th>
			</tr>
		</thead>
	</table>
    <else />
      Не удается подключиться к базе статистики
    </if>
</div>
  • Вопрос задан
  • 2716 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Итак. Первое и думаю главное замечание это перестань пользоваться расширением mysql, пользуйся mysqli или PDO.
Второе это то как ты обрабатываешь результативный массив. Ты при каждом проходе массива перезаписываешь значение $data. Для того что бы этого не происходило тебе необходимо указывать ключи для массива $data например так:
foreach (mysql_fetch_array($result) as $key=>$value) {
    $data[$key]['place'] = $value['place']
    ...
}
и т.д. и вообще если на вывод передаешь результат массива без каких то преобразований, то зачем тебе переприсваивать значения перемменых если можно просто написать $data = mysql_fetch_array($result);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
alexdb
@alexdb
Так у вас LIMIT 1,5, а нужно:
SELECT * FROM `stats2` ORDER BY skill LIMIT 5
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Один из тех вопросов, от которых волосы встают дыбом. На всех частях тела.

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

НО ОТВЕТЫ!!! "Тут какие-то заборы! Коровники! Мама, мы в аду! Мы в аду, мама!"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы