[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Компактный сбор статистики [PHP, MySQL]
Roman680
Нужна помощь, как сделать более компактную статистику.

Прикрепляю файл со старым скриптом.

Есть идея добавить просто поле, допустим `statistics` и добавить туда всю статистику по определенному серверу в формате json.

На форуме PR-CY не помогли.
inpost
То есть надо качать скрипт, потом его запускать, смотреть выполнение? Вместо того, чтобы ты сразу предоставил готовый вид в виде скрин-шотов? ohmy.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Roman680
Зачем его запускать, он же простой, просто запись в mysql через INSERT INTO.
А я хочу сделать запись в одно поле в json формате.
Valick
Цитата (Roman680 @ 23.06.2015 - 16:47)
А я хочу сделать запись в одно поле в json формате

очень плохая идея, указывающая на то что вы далеки от философии SQL
(запросы в цикле, тоже говорят, что и автор скрипта далековат от SQL)

Вся задача решается одним запросом.
(а тут звоночек для любителей работать со временем на уровне РНР)

_____________
Стимулятор ~yoomoney - 41001303250491
Roman680
Автор, Я user posted image
Ну да, я плохо понимаю php, так как самоучка.

Если у Вас есть идеи по лучшему хранению статистики, я буду рад узнать как.
Valick
if ($date_minutes >= 0 AND $date_minutes < 30) {
$minutes = '00';
} elseif ($date_minutes > 29 AND $date_minutes < 59) {
$minutes = '30';
}

Вот это зачем? какова смысловая нагрузка данной манипуляции?

_____________
Стимулятор ~yoomoney - 41001303250491
Roman680
Скрипт выполняется раз в 30 мин. Так как много серверов, скрипт выполняется с задержкой в пару мин, для вывода либо 0 или 30, что бы не было одной мин или 31.

user posted image

как то так.
Valick
Roman680, покажите запрос на вывод статистики.
если сбор статистики раз в 30 минут, то что за чёрточки на графике между этими 30-тью минутами???

_____________
Стимулятор ~yoomoney - 41001303250491
Roman680
Только не смейтесь, я этот скрипт писал год назад)

error_Reporting(E_ALL & ~E_NOTICE);
session_start();
require_once('../core.php');

header('Content-type: application/json;');

$server_cache = md5("******".$_GET['server_id']);

$sd = date("d");

if ($_GET['d'] == '3day') {
$v = '144';
} else {
$v = '48';
}

if ($_GET['cache'] == $server_cache) {
if(isset($_GET['server_id']) and $_GET['server_id'] >= 1) {
if (mysql_num_rows(mysql_query("SELECT * FROM `servers` WHERE `server_id`=".$_GET['server_id'])) == 1) {
$stats_server_mysql = mysql_query("SELECT * FROM `server_stats` WHERE `server_id`='{$_GET['server_id']}' ORDER BY `date` DESC LIMIT ".$v);
$stats_start = '';
$stats_start_PI = '';
while($stats_server = mysql_fetch_array($stats_server_mysql)) {

if ($_GET['d'] == '3day') {
$date = date("d-m, ", $stats_server['date']);
$date2 = date("d-m", $stats_server['date']);
$date3 = date("d", $stats_server['date']);
} else {
$date = null;
$date2 = $stats_server['time'];
}

$stats_start = "{\"date\":\"{$date}{$stats_server['time']}\", \"date2\":\"{$date2}\",
\"value\":{$stats_server['players']},\"color\":\"#3498db\"}," . $stats_start;
$stats_start_PI = "{\"date\":\"{$date}{$stats_server['time']}\", \"date2\":\"{$date2}\",
\"value\":\"{$stats_server['ping']}\",\"color\":\"#FF9900\"}," . $stats_start_PI;
}

if ($stats_start !== '') {
$stats_start = rtrim($stats_start, ',');
}

if ($stats_start_PI !== '') {
$stats_start_PI = rtrim($stats_start_PI, ',');
}

echo '{"ServePL":['.$stats_start.'],"ServerPI":['.$stats_start_PI.']}';

}
}
}
Быстрый ответ:

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