[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Cron Одноразовое обновление
715kg
Здравствуйте. Есть такой код. Обновляет информацию сервера.


$servers = dbquery("SELECT * FROM ".DB_SERVERS);
while($r=dbarray_fetch($servers)) {
$serv=serverInfo("$ip:$port");
if($serv['status']=='off'){
$result = dbquery("UPDATE amx_servers
SET
server_status = '0',
server_map = '',
server_players = '0',
server_maxplayers = '0'
WHERE server_ip='"
.$r['server_ip']."'");
continue;}
$name=name_filtered($serv['name']);
$result = dbquery("
UPDATE amx_servers
SET
server_name = '"
.$name."',
server_map = '"
.$serv['map']."',
server_players = '"
.$serv['players']."',
server_maxplayers = '"
.$serv['max_players']."',
server_status = '1'
WHERE server_ip='
$ip:$port'");
}


Засунул его в файл который выбрасывает в браузер инфу о сервере
Но проблема в том, что каждый раз когда обновляешь файл он каждый раз делает запрос к базе чтобы обновить информацию.

Есть код который выводит инфу из бабы

$q = dbquery("SELECT * FROM ".DB_SERVERS." WHERE server_ip = '$ip:$port'"); //Вывод


И код который записывает в базу из $_GET запроса

 $insert = dbquery("INSERT INTO amx_servers (server_ip, server_name) VALUES('$ip:$port', 'Подождите 5 Минут')"); //Запись


Суть в чем, нужно сделать так. Добавляется новый ip:port в базу, он его сразу обновляет. Если такой Ip:port Уже есть в базе, он его обновлять не будет.

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

$q = dbquery("SELECT * FROM ".DB_SERVERS." WHERE server_ip = '$ip:$port'"); //Вывод
if (mysql_num_rows($q)>0)
{
echo "Запись уже есть. Обновление OFF";
}
else
{

$servers = dbquery("SELECT * FROM ".DB_SERVERS);
while($r=dbarray_fetch($servers)) {
$serv=serverInfo("$ip:$port");
if($serv['status']=='off'){
$result = dbquery("UPDATE amx_servers
SET
server_status = '0',
server_map = '',
server_players = '0',
server_maxplayers = '0'
WHERE server_ip='"
.$r['server_ip']."'");
continue;}
$name=name_filtered($serv['name']);
$result = dbquery("
UPDATE amx_servers
SET
server_name = '"
.$name."',
server_map = '"
.$serv['map']."',
server_players = '"
.$serv['players']."',
server_maxplayers = '"
.$serv['max_players']."',
server_status = '1'
WHERE server_ip='
$ip:$port'");
}

}




Спустя 20 минут, 43 секунды (15.03.2012 - 15:06) 715kg написал(а):
Все сделал. Тему можно удалить. )))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.