Сообщений: 75
Тем: 5
Зарегистрирован: Oct 2011
Репутация:
-69
Привет всем кто читает эту тему. Пожалуйста, не судите строго за простой вопрос, но в поисковиках я не могу найти нужное. Для сайта мне нужно сделать статистику "ТОП сервера". Там будет топ кланов, топ пвп, топ ПК и замки. В общем стандартный набор. Сам вопрос заключается в следующем: Допустим в топ пвп я делаю запрос в БД:
PHP код: <?php
$query = @mysql_query ("SELECT * FROM characters ORDER BY pvpkills DESC LIMIT 0, 50",$id);
$pvp = @mysql_fetch_array ($query);
а дальше нужно написать команду на вывод результатов. Я вывожу записи в цикле:
PHP код: <?php
do{
++ $nom;
echo '<br>'.$nom.' Игрок '.$pvp['char_name'].' Кол-во PvP: '.$pvp['pvpkills'];
}
while ($pvp = @mysql_fetch_array ($query));
Но нужно заключить строчки в отдельные массивы, чтобы можно было создать таблицу и выводить не сплошным текстом, а отдельно массив в строке. Это нужно для создания эстетического вида сайта. Если не понятно, то скажите, я постараюсь объяснить по- другому.
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Строчки, массивы... ничего не понял. Вы о:
PHP код: <?php
$position = 0;
while (false !== ($row = mysql_fetch_assoc($result)))
{
$htmlBlock .= '
<div class="player">
<div class="position">'.$position++.'</div>
<div class="nickname">'.$row['char_name'].'</div>
<div class="pvp">'.$row['pvpkills'].'</div>
</div>
';
}
echo '<div class="playerlist">'.$htmlBlock.'</div>';
? Если оно, то потом еще изучите http://ruseller.com/lessons.php?rub=2&id=1291
Сообщений: 75
Тем: 5
Зарегистрирован: Oct 2011
Репутация:
-69
Нет, вопрос не в построении таблиц, а в заключении записей об персонажах в массивы. Если объяснять "на пальцах", то получится, что нужно, чтоб получилось $pvp1=запись из БД об игроке, у которого максимальное кол-во pvp, $pvp2=запись о том, кто второй по количеству и т.д. А в табличке потом я сделаю шапку, которая будет делить таблицу на 3 столбца (| место| ник | колво |), а ниже будут идти записи в таблице: строка 1: | №1 | nick | 1000pvp | и т.д..... | №2 | nick2 | 999pvp |. А в скрипте на место "№" будет ++ $nom; "nick" - $pvp1['char_name']; 1000pvp - $pvp1['pvpkills']. Нужно узнать как именно сделать цикл, чтоб он создал массивы $pvp1..........$pvp50 (для 50ти записей топ игроков)
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Увы, целесообразности в вашем подходе я не вижу.
$row и так массив и выполняется в цикле перебирая 50 записей...
Сообщений: 75
Тем: 5
Зарегистрирован: Oct 2011
Репутация:
-69
12-21-2011, 07:56 PM
(Сообщение последний раз редактировалось: 12-21-2011, 08:02 PM Jocker.)
была конечно идиотская мысль PHP код: <?php
$pvp2 = mysql_query ("SELECT * FROM characters WHERE pvpkills != $pvp1['pvpkills'] ORDER BY pvpkills DESC LIMIT 0, 50",$id)
, но это километровый скрипт с 50тью запросами в БД и каждый понимает, что так делать не надо. Но как- вот это для меня пока нерешаемый вопрос. Помогите пожалуйста, спасибо.
Добавлено через 3 минуты
PROGRAMMATOR Написал:Увы, целесообразности в вашем подходе я не вижу.
$row и так массив и выполняется в цикле перебирая 50 записей...
Допустим для того, чтобы вывести ник лидера я должен вывести $row1[char_name], кол-во $row1[pvpkills], второго- $row2[char_name], $row2[pvpkills]?... То есть мой вопрос заключается в том, как определить 1го, 2го и т.д. игроков из $row
Сообщений: 577
Тем: 27
Зарегистрирован: May 2010
Репутация:
113
Не понятно зачем это выдумывать.
Можно сделать проще - в файлеки вида http://www.lineage2.com/stats/pvp.html
В нём будет по крону сохраняться либо полностью таблица, либо таблица без шапки.
А в статистике уже делаете что бы то что Вам надо было подгружалось.
PS
Цитата:Привет всем кто читает эту тему.
Привет.
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Цитата:как определить 1го, 2го и т.д. игроков из $row
$row - содержит информацию о игроке с максимальным количеством PvP баллов, с каждым циклом будет обрабатываться игрок 2, 3, 4, 5 ... 50.
Сообщений: 75
Тем: 5
Зарегистрирован: Oct 2011
Репутация:
-69
Сообщений: 577
Тем: 27
Зарегистрирован: May 2010
Репутация:
113
Возьмите ЛЮБУЮ цмс под ла2, тот же мой-веб, посмотрите там, найдёте готовый запрос с циклом, зачем создавать колесо раз не можете?
Сообщений: 75
Тем: 5
Зарегистрирован: Oct 2011
Репутация:
-69
12-21-2011, 08:52 PM
(Сообщение последний раз редактировалось: 12-21-2011, 10:12 PM Jocker.)
Я совсем недавно изучаю web программирование и не умею разбираться в сложных чужих скриптах (( Ну ладно, щас буду пробовать смотреть.
Добавлено через 1 час 19 минут
Я немного продвинулся. Состряпал скрипт после запроса в БД:
PHP код: <?php $name = $pk['char_name'];
$count = $pk['pkkills'];
do {++$num;
echo '<div><table width="100%" border="1">
<tr>
<td><?php echo $num;?></td>
<td><?php echo $name;?></td>
<td><?php echo $count;?></td>
</tr>
</table></div>';
}
while ($pk = @mysql_fetch_array ($query));?>
Здесь я присвоил переменным $name и $count соответствующие значения и вывел их прямо в таблице. Получилось, что таблица выводится 7 раз (на сервере 7 чаров, у которых есть очки ПК), но она (таблица) пустая. Подскажите, что я делаю не так? Что сделать, чтобы записи отображались?
|