[ищу скрипт] Максимальный онлайн
Дайте скрипт что бы показывался максимальный онлайн сервера
Зарание спасибо!
— Оо
Нашел скрипт:
sql
`id` int(10) unsigned NOT NULL auto_increment,
`record` int(10) unsigned default NULL,
`date` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `records` (`id`,`record`,`date`) VALUES (1,1,'1');
php
$host="localhost";
$user="root";
$pass="root";
$db="l2db";
mysql_connect($host, $user, $pass) or die("нет коннекта к $host");
mysql_select_db($db) or die("нет коннекта к $db");
#кол-ва онлайна
$online=mysql_fetch_row(mysql_query("SELECT COUNT(online) FROM characters WHERE online=1"));
#последний максимальный рекорд на сегодня
$record=mysql_fetch_row(mysql_query("SELECT * FROM records ORDER BY id DESC limit 1"));
#максимальный рекорд
$record_max=mysql_fetch_row(mysql_query("SELECT date,record FROM records where record>0 ORDER BY record DESC limit 1"));
#текущее время
$mktime=mktime();
#текущая дата
$date=date('y m d');
#дата у послед. максим. онлана на сегодня
$record_date=date('y m d',$record[2]);
#дата максимального рекорда
#$date_record=date('d m Y',$record_max[0]);
#если дата max. сегоднешнего дня равна сегоднешней дате, то идем дальше, если нет то проходим запрос
if($record_date==$date)
{
#если онлайн больше рекорда, то обновляем рекорд у сегоднешней даты
if($online[0] > $record[1])
{mysql_query("UPDATE records_o SET record=$online[0] WHERE date=$record[2]");}
}
#если все запросы не верны, то создаем рекорд онлайна текущего дня, обычно в 00:00ч.
else
{mysql_query("INSERT INTO records_o VALUES ('id', ".$online[0].", ".$mktime.")");}
echo'
<TABLE>
<TR>
<TD><u>'.$server_name.'</u></TD>
<TD><font color=00FF00><u>'. $online[0].'</u></font> / '.$record_max[1].'</TD>
</TR>
</TABLE>
';
?>
Захажу на скрипт там пишет:
107 / 1
т.е максимальный онлайн пишет "1" как исправить?
— Оо
Дык... у тебя то в базе records, чтобы создал стоит (сотрим отсюда):
в таблице record значение 1. И как оно, по-твоему, должно меняться? Это делается сервером, если там есть в ядре такие функции. Н-р, они изначально есть в l2jfree и база там уже создается record, куда каждый день заносятся рекорды онлайна сервером. Так что... нужен другой скрипт с созданием временного кеша или просто создающий файлик record.txt (по типу как файл online.txt для л2топа) и при новом просмотре сайта, этот скрипт бы сравнивал значения в файле record. Если новое больше того, чт ов файле, то оно заменяется, если нет, то ничего не происходит...
Кто сделает?)
— Random Post Generator
id - auto increment, оно меняется автоматически внутренним счётчиком MySQL
WebDeveloper сервера DARKWORLD
Те можете нормальный скрипт дать уже рабочий я не понял=(
Он будет так выглядеть ?
INSERT INTO `records` (`id`,`record`,`date`) VALUES (0,1,'1'); ??????
Я про таблицу record, а не про id, ведь сервер с ней никак не связан... (хотя я не знаю, что за сборка, мб там оно есть). Но скрипт мне, кстати, подойдет, Сенкс :)
— Random Post Generator
То есть?!
Вот так что ли надо заливать?
INSERT INTO `records` (`id`,`record`,`date`) VALUES (1,0,'1');
Сборка базы финал
Киньте тогда нормальный скрипт под неё!
Зарание спасибо!!
— Оо
INSERT INTO `records` (`id`,`record`,`date`) VALUES (0,1,'1'); - не правильно
INSERT INTO `records` (`record`,`date`) VALUES ('1','1'); - правильно
WebDeveloper сервера DARKWORLD
Knokswille: INSERT INTO `records` (`id`,`record`,`date`) VALUES (0,1,'1'); - не правильно
INSERT INTO `records` (`record`,`date`) VALUES ('1','1'); - правильно
Сейчас максимальный онлайн показывает "1" как и было
— Оо
правильно ... а чего ты хотел ? ты ведь пихаешь в ячейку значение 1
а надо пихать текущий онлайн )
WebDeveloper сервера DARKWORLD
ChooJoyBoO: а нелегче тогда в html шаблона тупо написать? или я чего то недопонел
Ручками писать не оч хочу каждый час
— Оо
`id` int(2) NOT NULL auto_increment,
`count` int(3) default NULL,
`date` varchar(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=cp1251;
INSERT INTO `toponline` VALUES ('1', '1', '10.04.2009 18:19');
$dbuser = ""; // Пользователь
$dbpass = ""; // Пароль
$dbhost = ""; // Адресс БД
$dbname = ""; // Имя базы данных
$msconn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Ошибка соединения");
MYSQL_SELECT_DB($dbname) or die ("База не существует !");
mysql_query("SET NAMES 'cp1251';");
$onlineresult = mysql_query("SELECT count(*) FROM characters WHERE accessLevel = 0 AND online = 1");
$onlinenow = mysql_result($onlineresult, 0, 0);
$topresult = mysql_query("SELECT * FROM toponline");
$toprow = mysql_fetch_array($topresult);
if ($onlinenow <= $toprow[count])
{
$record = $toprow[count];
$data = $toprow[date];
}
else
{
$lastupdate = $_TIME;
$data = date("d.m.Y H:i", $lastupdate);
$update = mysql_query ("UPDATE toponline SET count='$onlinenow', date='$data' WHERE id=1");
}
echo "Рекорд онлайна: ".$record." был ".$data."<br>";
mysql_close();
?>
Скрипт работает. Доводите до ума, правьте, у меня нету ни желания, ни стимула, ни времени.
WebDeveloper сервера DARKWORLD
MaJIuHa: Сделала все как по последнему примеру,но ничего не получилось !
выдает какие то ошибки или что?

![-=[BloodKill]=-](/uploads/fotos/av-39301.jpg)



