PHP+MySQL (статистика "TOP сервера") - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > PHP

PHP Форум как для начинающих программистов на PHP так и для профессионалов этого дела. Если нужно создать скрипт, функцию и т.д, но не знаете как, спросите у нас и мы вам подскажем. Здесь вы найдете примеры скриптов которые вы сможете использовать на сайтах своих серверов (онлайн, регистрация, семь печатей, топ игроков). Так же много книг и статей.
Описание темы:Lineage2

Ответ
Опции темы
Непрочитано 21.12.2011, 18:32   #1
Аватар для Jocker
Пользователь

Автор темы (Топик Стартер) PHP+MySQL (статистика "TOP сервера")

Привет всем кто читает эту тему. Пожалуйста, не судите строго за простой вопрос, но в поисковиках я не могу найти нужное. Для сайта мне нужно сделать статистику "ТОП сервера". Там будет топ кланов, топ пвп, топ ПК и замки. В общем стандартный набор. Сам вопрос заключается в следующем: Допустим в топ пвп я делаю запрос в БД:
PHP код:
   $query = @mysql_query ("SELECT * FROM characters ORDER BY pvpkills DESC LIMIT 0, 50",$id);
   
$pvp = @mysql_fetch_array ($query); 
а дальше нужно написать команду на вывод результатов. Я вывожу записи в цикле:
PHP код:
   do{
       ++ 
$nom;
       echo 
'<br>'.$nom.' Игрок '.$pvp['char_name'].' Кол-во PvP: '.$pvp['pvpkills'];
      }
while (
$pvp = @mysql_fetch_array ($query)); 
Но нужно заключить строчки в отдельные массивы, чтобы можно было создать таблицу и выводить не сплошным текстом, а отдельно массив в строке. Это нужно для создания эстетического вида сайта. Если не понятно, то скажите, я постараюсь объяснить по- другому.
Jocker вне форума Ответить с цитированием
Непрочитано 21.12.2011, 19:12   #2
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: PHP+MySQL (статистика "TOP сервера")

Строчки, массивы... ничего не понял. Вы о:

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
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 21.12.2011, 19:50   #3
Аватар для Jocker
Пользователь

Автор темы (Топик Стартер) Re: PHP+MySQL (статистика "TOP сервера")

Нет, вопрос не в построении таблиц, а в заключении записей об персонажах в массивы. Если объяснять "на пальцах", то получится, что нужно, чтоб получилось $pvp1=запись из БД об игроке, у которого максимальное кол-во pvp, $pvp2=запись о том, кто второй по количеству и т.д. А в табличке потом я сделаю шапку, которая будет делить таблицу на 3 столбца (| место| ник | колво |), а ниже будут идти записи в таблице: строка 1: | №1 | nick | 1000pvp | и т.д..... | №2 | nick2 | 999pvp |. А в скрипте на место "№" будет ++ $nom; "nick" - $pvp1['char_name']; 1000pvp - $pvp1['pvpkills']. Нужно узнать как именно сделать цикл, чтоб он создал массивы $pvp1..........$pvp50 (для 50ти записей топ игроков)
Jocker вне форума Ответить с цитированием
Непрочитано 21.12.2011, 19:54   #4
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: PHP+MySQL (статистика "TOP сервера")

Увы, целесообразности в вашем подходе я не вижу.
$row и так массив и выполняется в цикле перебирая 50 записей...
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 21.12.2011, 19:56   #5
Аватар для Jocker
Пользователь

Автор темы (Топик Стартер) Re: PHP+MySQL (статистика "TOP сервера")

была конечно идиотская мысль
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

Последний раз редактировалось Jocker; 21.12.2011 в 20:02. Причина: Добавлено сообщение
Jocker вне форума Ответить с цитированием
Непрочитано 21.12.2011, 20:02   #6
Аватар для Blast
Пользователь

По умолчанию Re: PHP+MySQL (статистика "TOP сервера")

Не понятно зачем это выдумывать.
Можно сделать проще - в файлеки вида www.lineage2.com/stats/pvp.html
В нём будет по крону сохраняться либо полностью таблица, либо таблица без шапки.
А в статистике уже делаете что бы то что Вам надо было подгружалось.


PS
Цитата:
Привет всем кто читает эту тему.
Привет.
Blast вне форума Ответить с цитированием
Непрочитано 21.12.2011, 20:14   #7
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: PHP+MySQL (статистика "TOP сервера")

Цитата:
как определить 1го, 2го и т.д. игроков из $row
$row - содержит информацию о игроке с максимальным количеством PvP баллов, с каждым циклом будет обрабатываться игрок 2, 3, 4, 5 ... 50.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 21.12.2011, 20:32   #8
Аватар для Jocker
Пользователь

Автор темы (Топик Стартер) Re: PHP+MySQL (статистика "TOP сервера")

Извините, но я все равное не могу понять. Составил таблицу (тут работаю не с пвп, а с пк):
PHP код:
<table width="100%" border="1">
  <tr>
    <td align="center">Позиция</td>
    <td align="center">Игрок</td>
    <td align="center">Количество PvP</td>
  </tr>
</table>
<table width="100%" border="1">
  <tr>
    <td align="center"><?php echo $num ;?></td>
    <td align="center"><?php do {echo $pk['char_name'];}
    while (
$pk = @mysql_fetch_array ($query));
?></td>
    <td align="center"><?php do {echo $pk['pkkills'];}
    while (
$pk = @mysql_fetch_array ($query));
?></td>
  </tr>
</table>
- ничего толкового не получается...
Blast- страница, которую вы дали выдает ошибку 404
Jocker вне форума Ответить с цитированием
Непрочитано 21.12.2011, 20:47   #9
Аватар для Blast
Пользователь

По умолчанию Re: PHP+MySQL (статистика "TOP сервера")

Возьмите ЛЮБУЮ цмс под ла2, тот же мой-веб, посмотрите там, найдёте готовый запрос с циклом, зачем создавать колесо раз не можете?
Blast вне форума Ответить с цитированием
Непрочитано 21.12.2011, 20:52   #10
Аватар для Jocker
Пользователь

Автор темы (Топик Стартер) Re: PHP+MySQL (статистика "TOP сервера")

Я совсем недавно изучаю 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 чаров, у которых есть очки ПК), но она (таблица) пустая. Подскажите, что я делаю не так? Что сделать, чтобы записи отображались?

Последний раз редактировалось Jocker; 21.12.2011 в 22:12. Причина: Добавлено сообщение
Jocker вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В раздел "Aion "сделать подраздел " Веб-обвязки" . ioga О форуме / About Zone-Game 4 13.10.2011 23:01
[Fix]Наиболее эффективная защита сервера от "дюпа" BioSchok Серверная часть 1 10.05.2011 11:04
Запуск сервера. Ошибка "failed to create empty document" Dmivlagus Rising Force Online 0 23.02.2010 19:22
Сборка сервера l2Emu+Fantom "Интересные наработки" Fantom Lineage II 67 15.01.2010 12:09
"Одноразовые персы" или "Дисконнект с сервера" =( eXeSS Сервер 1 01.08.2009 16:09


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 22:37. Часовой пояс GMT +3.

Вверх