Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2012, 12:53   #1
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
Лампочка В чем может быть заноза.

Написал cron. При помощи его записываю в фал список игроков(каждого сервера). Заноза в следующем, в первые 2 сервера количество игроков равно количеству вообщем. В последующих серверах, записывает все игроки находящиеся на всех серверах. И так в каждом, кроме первых 2-ух.
Что за причина может быть?

Собственно код:

PHP код:
$resu mysql_query("SELECT * FROM `servers`");
        while (
$r mysql_fetch_assoc($resu)) {
            
$lists explode(":"$r['address']);
                 
$live server_query_live("halflife"$lists[0], $lists[1], "sp");        
                
$sekret 0;                    
                foreach (
$live['p'] as $v){
                
$ff[$sekret]['name'] = $v['name'];
                
$sekret++;
                
$playe[] = array(
                
'id' => $r['id'],
                
'playe' => $ff,
            );

        }
    
       } 
Получившийся массив, записываю в файл.

Последний раз редактировалось Predator199; 18.10.2012 в 12:57.
Predator199 вне форума Ответить с цитированием
Старый 18.10.2012, 13:03   #2
snippet
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 37
По умолчанию

Я не уловил суть задачи, и думаю никто не уловил.

И что за server_query_live() ?
http://dev-snippet.com
snippet вне форума Ответить с цитированием
Старый 18.10.2012, 13:10   #3
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

server_query_live передаем адрес сервера к функции. Через функцию и получаем данные игроков.

Из 25 игроков на сервере, в списке их гораздо больше. С других серверов.

Последний раз редактировалось Predator199; 18.10.2012 в 13:14.
Predator199 вне форума Ответить с цитированием
Старый 18.10.2012, 13:23   #4
snippet
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 37
По умолчанию

1 игрок = 1 запись в базе?

Если да то попробуйте считать кол-во игроков следующим образом:
PHP код:
$result mysql_query("SELECT * FROM `servers`");
echo 
mysql_num_rows($result); 
Если нет, сколько серверов, что хранится в таблице `servers`, какие поля содержит 1-а запись.

Опишите каждую переменную функции server_query_live(), она custom'ая? вы дробите адрес на имя_хоста:порт? или иначе?
http://dev-snippet.com
snippet вне форума Ответить с цитированием
Старый 18.10.2012, 13:27   #5
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Серверов много в табл servers. Поле address содержит адрес сервера. Адрес дроблю.
Цитата:
1 игрок = 1 запись в базе?
Не совсем, 1 адрес-все игроки на сервере. Через крон узнаю скок игроков и записываю в tmp.
Predator199 вне форума Ответить с цитированием
Старый 18.10.2012, 13:35   #6
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Я думаю вся проблема здесь:
PHP код:
$sekret 0;                    
                foreach (
$live['p'] as $v){
                
$ff[$sekret]['name'] = $v['name'];
                
$sekret++;
                
$playe[] = array(
                
'id' => $r['id'],
                
'playe' => $ff,
            );

        } 
$playe - это список людей?
Его скорей всего за цикл нужно вынести.
Как-то так:
PHP код:
$ff = array();                    
                foreach (
$live['p'] as $v){
                
$ff[]['name'] = $v['name'];
        }
$playe[] = array(
                
'id' => $r['id'],
                
'playe' => $ff,
            ); 
LZero вне форума Ответить с цитированием
Старый 18.10.2012, 13:57   #7
snippet
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 37
По умолчанию

Цитата:
Сообщение от LZero Посмотреть сообщение
Я думаю вся проблема здесь:
PHP код:
$playe это список людей
Конструкция
PHP код:
$playe[] = array(
       
'id' => $r['id'],
       
'playe' => $ff,
); 
Последовательно записывает массивы в массив.

Уточните задачу, вам нужно кол-во игроков на каждом из серверов?

Если вас не устраивает цифра 58 на скриншоте, так посмотрите откуда она берется. Код ведь перед вами. Ну или сюда запостите.

Вы просто вырвали код из контекста, я непонимаю какие данные приходят и что получается после обработки.
http://dev-snippet.com
snippet вне форума Ответить с цитированием
Старый 18.10.2012, 14:04   #8
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Спс. Вроде нашел в чем ошибка:
Администраторы ставят ботов на сервер.
Щас ошибка в основном с игрой l4d2. Нужно будит функцию поправить.
Спс.
Predator199 вне форума Ответить с цитированием
Старый 18.10.2012, 15:34   #9
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Спс........

Последний раз редактировалось Predator199; 18.10.2012 в 15:40.
Predator199 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Z-буфер, в чем может быть проблема? kaifat Общие вопросы Delphi 8 26.05.2012 22:49
Не проходит дебаг, в чем может быть ошибка? L6go1as Win Api 14 07.01.2012 18:33
в чем может быть дело? saidmir C/C++ Базы данных 0 08.03.2011 14:10
В чем может быть ошибка? nervniy БД в Delphi 2 21.10.2010 15:47
помотрите в чем может быть ошибка zizu Помощь студентам 2 26.04.2010 10:16