[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Статистика
ПацаныДата: Суббота, 01.11.2014, 16:22 | Сообщение # 1
Группа: Удаленные
Сообщений: 50079





Решил выложить статистику написаную на PDO. Может кому-то пригодится 
 
PHP код:
<?php // Данные для подключения к MySQL$ip ="127.0.0.1";// IP$sqluser ="root";// Пользователь$sqlpass ="";// Пароль$sqldb1 ="";// База данных AUTH$sqldb2 ="";// База данных CHAR(db)try{ $DBH1=new PDO("mysql:host=$ip;dbname=$sqldb1",$sqluser,$sqlpass); $DBH2=new PDO("mysql:host=$ip;dbname=$sqldb2",$sqluser,$sqlpass); $DBH1->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $DBH2->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $STH1 = $DBH1->prepare("SELECT * FROM `t_users` WHERE `a_zone_num` <> -1"); $STH1->execute(); $STH2 = $DBH1->prepare("SELECT * FROM `bg_user` WHERE `user_code` > 0"); $STH2->execute(); $STH3 = $DBH2->prepare("SELECT * FROM `t_guild` WHERE `a_index` > 0"); $STH3->execute(); $STH4 = $DBH2->prepare("SELECT * FROM `t_characters` WHERE `a_index` > 0"); $STH4->execute(); $STH6 = $DBH1->prepare("SELECT * FROM `max_online` WHERE `id`=1"); $STH6->execute(); $STH6->setFetchMode(PDO::FETCH_ASSOC); $countOnline = $STH1->rowCount();// Общее количество онлайна $countUsers = $STH2->rowCount();// Количество созданых аккаунтов $countGuilds = $STH3->rowCount();// // Количество созданых гильдий $countChars = $STH4->rowCount();// Количество созданых персонажей $countMaxOnline = $STH6->fetch();// Максимальный онлайнif($countOnline > $countMaxOnline['max']){ $STH7 = $DBH1->prepare("UPDATE `max_online` SET `max`=? WHERE `id`=1"); $STH7->execute(array($countOnline)); echo "Макс. онлайн:".$countOnline."";}else{ echo "Макс. онлайн: ".$countMaxOnline['max']."";} echo "Общий онлайн: ".$countOnline.""; echo "Всего аккаунтов: ".$countUsers.""; echo "Всего гильдий: ".$countGuilds.""; echo "Всего персонажей: ".$countChars.""; echo "Время сервера: ".date('H:i:s')."";}catch(PDOException $e){print $e."Ошибка соединения";}?>Для вычесления максимального онлайна нужно выполнить несколько запросов:
CREATETABLEIFNOTEXISTS`max_online`(`id` int(11) unsigned NOTNULL AUTO_INCREMENT,`max` int(11)DEFAULT'0',PRIMARYKEY(`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2;INSERTINTO`max_online`(`id`,`max`)VALUES(1,0);Если чего-то не хватает, пишите.
 
  • Страница 1 из 1
  • 1
Поиск: