Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
PHP+MySQL (статистика "TOP сервера")
#1
Привет всем кто читает эту тему. Пожалуйста, не судите строго за простой вопрос, но в поисковиках я не могу найти нужное. Для сайта мне нужно сделать статистику "ТОП сервера". Там будет топ кланов, топ пвп, топ ПК и замки. В общем стандартный набор. Сам вопрос заключается в следующем: Допустим в топ пвп я делаю запрос в БД:
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));

Но нужно заключить строчки в отдельные массивы, чтобы можно было создать таблицу и выводить не сплошным текстом, а отдельно массив в строке. Это нужно для создания эстетического вида сайта. Если не понятно, то скажите, я постараюсь объяснить по- другому.
Ответ
#2
Строчки, массивы... ничего не понял. Вы о:

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
Ответ
#3
Нет, вопрос не в построении таблиц, а в заключении записей об персонажах в массивы. Если объяснять "на пальцах", то получится, что нужно, чтоб получилось $pvp1=запись из БД об игроке, у которого максимальное кол-во pvp, $pvp2=запись о том, кто второй по количеству и т.д. А в табличке потом я сделаю шапку, которая будет делить таблицу на 3 столбца (| место| ник | колво |), а ниже будут идти записи в таблице: строка 1: | №1 | nick | 1000pvp | и т.д..... | №2 | nick2 | 999pvp |. А в скрипте на место "№" будет ++ $nom; "nick" - $pvp1['char_name']; 1000pvp - $pvp1['pvpkills']. Нужно узнать как именно сделать цикл, чтоб он создал массивы $pvp1..........$pvp50 (для 50ти записей топ игроков)
Ответ
#4
Увы, целесообразности в вашем подходе я не вижу.
$row и так массив и выполняется в цикле перебирая 50 записей...
Ответ
#5
была конечно идиотская мысль
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
Ответ
#6
Не понятно зачем это выдумывать.
Можно сделать проще - в файлеки вида http://www.lineage2.com/stats/pvp.html
В нём будет по крону сохраняться либо полностью таблица, либо таблица без шапки.
А в статистике уже делаете что бы то что Вам надо было подгружалось.


PS
Цитата:Привет всем кто читает эту тему.
Привет.
Ответ
#7
Цитата:как определить 1го, 2го и т.д. игроков из $row

$row - содержит информацию о игроке с максимальным количеством PvP баллов, с каждым циклом будет обрабатываться игрок 2, 3, 4, 5 ... 50.
Ответ
#8
Ответ
#9
Возьмите ЛЮБУЮ цмс под ла2, тот же мой-веб, посмотрите там, найдёте готовый запрос с циклом, зачем создавать колесо раз не можете?
Ответ
#10
Я совсем недавно изучаю 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 чаров, у которых есть очки ПК), но она (таблица) пустая. Подскажите, что я делаю не так? Что сделать, чтобы записи отображались?
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Изменение данных в Mysql через PHP Fudji 12 4,547 07-07-2014, 08:01 PM
Последний пост: AleBrider
  Ап тайм и статистика серверов dev1 19 5,734 06-11-2013, 07:41 PM
Последний пост: k0ctik
  mysql запрос APKO 38 10,306 03-27-2012, 03:22 PM
Последний пост: x3k
  PHP+MySQL Jocker 3 2,568 12-14-2011, 09:17 PM
Последний пост: Jocker
  Защита сайта, MySQL баз и сервера Lineage2 Jocker 17 4,692 12-07-2011, 04:08 PM
Последний пост: Jocker
  mysql OR flashboom777 6 3,763 06-03-2011, 02:49 PM
Последний пост: flashboom777
  скрипт статуса сервера gebriel 8 4,402 04-21-2011, 12:05 PM
Последний пост: flashboom777
  Статус сервера Infinity 1 2,536 01-20-2011, 12:27 AM
Последний пост: MROBAR
  Статистика для joomla flashboom777 0 2,287 12-17-2010, 04:23 PM
Последний пост: flashboom777
  Видеокурсы по PHP5,MySQL Lolitop 2 3,424 08-02-2010, 01:01 AM
Последний пост: PROGRAMMATOR

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)