[скрипт] ТОП голосующих
Есть ли такой скрипт? Чтобы из БД считывал всех проголосовавших за месяц и выводил их в список от 1 до 10 . ?
( то есть я проголосовал в л2топ сервер их считал и записал в бд а скрип из бд считал и показал на странице количество голосов и список от 1 до 10)
делаешь дополнительную таблицу в БД: ник - количество голосов
при добавлении итема пишешь запрос, который будет добавлять ник и 1 голос в эту новую таблицу ели человек голосовал первый раз, если не первый, то инкрементировать количесво его голосов...
ну а далее выводить список сортировав по голосам.
— FoBOSS
Виложи свой скрипт л2топа, только в тег спойлер вложи.
WebDeveloper сервера DARKWORLD
if(!isset($_POST['name'])){
echo '<form action="module/l2top.php" method="post">';
echo 'Получение Coin Of Luck За Голосование<br>Введите ник персонажа.<br/>
<input type="text" name="name"/><br/><br/>
<input type="submit" value="Получить бонус!"/>
</form>';
}else{
$bonus_id=4037; // ID вещи которую зачисляем игроку как бонус за голосование | По умолчанию 6673 - Festival Adena
$cols_for_vote=5; // Колличество зачисляемых вещей за одно голосование
$id_l2top=5465; // Ваш ID в рейтинге L2Top
$host='localhost'; // сервер на котором установлена база данных L2J
$user='root'; // имя пользователя от базы данный
$pass=''; // пароль пользователя от базы данный
$db='l2'; // название базы данных
$mc = mysql_connect($host, $user, $pass);
if($mc){
$db = mysql_select_db ($db);
}
if(!$mc || !$db){
echo 'Нет соединения с базой данных.';
exit;
}
$name=mysql_escape_string($_POST['name']);
$ch=mysql_query("SELECT obj_Id FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);
$char_id=$chd['obj_Id'];
$total=0;
$your_ip = $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$your_ip);
$your_ip1 = $dip[0].'.'.$dip[1].'.'.$dip[2].'.xxx';
$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if (!$html || !preg_match_all('/<td>([^<]+)</td>/', $html, $matches))
$error .= 'Не удалось получить информацию с L2Top.ru!<br/>';
else
{
foreach ($matches[1] as $id => $nick)
{
if (strtolower(trim($nick))==strtolower(trim($name))) {
$voters[] = $matches[1][$id-2];
}
}
if ($voters != array())
{
foreach ($voters as $time)
{
$result = mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = mysql_query("SELECT * FROM `items` WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 4037");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`");
$row = mysql_fetch_assoc($result);
$ins_id = $row['id'];
mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 4037");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= 'Голос за '. $time.' зачислен.<br/>';
}
else
$error .= 'Голос за '. $time.' уже был зачислен.<br/>';
}
}
else
$error .= 'Ваш голос на сайте L2Top.ru не найден.<br>';
}
echo $error.'<br><b>'.$total.'</b> Coin of Luck зачислено вашему персонажу<br/>';
}
?>
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
/*
данный запрос необходимо переделывать взависимости от того, какая структура таблицы items у вас на сборке сервера. Данный запрос отвечает за добавление бонусной вещи за голосование в инвентарь, если у вас её еще нет.
*/
Ну так что? Кто поможет?
Оговорюсь сразу, с запросами не знаком ))) пишу приблизительно, по аналогии )))
вставка
выборка
должно быть что-то похожее на это )))
WebDeveloper сервера DARKWORLD
Knokswille: Оговорюсь сразу, с запросами не знаком ))) пишу приблизительно, по аналогии )))
вставкаSQLmysql_query("INSERT INTO `l2topvoters` (`voter`) VALUES(`nick`)");
выборкаSQLmysql_query("SELECT * FROM "l2topvoters" ORDER BY "l2topvoters" ASC LIMIT 10 ");
должно быть что-то похожее на это )))
Чет все равно не работает. Не получаться..
естественно, я ж написал запросы и не факт что рабочие, нужно создать доп таблицу, а запросы ещё дописать.
WebDeveloper сервера DARKWORLD
у меня такой скрипт
echo('<center><b><font color="" size="3">ТОП 10 голосующих игроков</font></b><br><br><div style="margin: 0 auto;width:300; border: 1px solid #TColor; background: #TColor; padding: 3px; font-size: 10pt; ">');
echo('<table border="0" width="280" cellpadding="1" cellspacing="1" align="center"><tr bgcolor=""><td><b><center>la2mir</center></b></td></tr></table>');
echo('<table border="0" width="280" cellpadding="1" cellspacing="1" align="center"><tr bgcolor=""><td></td><td><b>Имя</b></td><td><b>голосов</b></td><td><b>сервер</b></td></tr>');
$result=mysql_query('SELECT nick, count(nick) from l2top group by nick order by count(nick) desc limit 10');
$i=0;
$t=0;
while ($r_arr=mysql_fetch_array($result))
{
$i++;
$t=$t-1;
//if ($i<6)
//{
//$t=100;
//}
echo('<tr style="font-size:'.$t.'" bgcolor="" align="center"><td>'.$i.'</td><td>'.$r_arr['nick'].'</td><td>'.$r_arr['count(nick)'].'</td><td>Сервер</td></tr>');
}
echo('</table>');
$result=mysql_query('SELECT id from l2top');
echo(mysql_error());
$allvote=mysql_num_rows($result);
#################
echo('<table bortder="0" width="280" bgcolor="" cellpadding="1" cellspacing="1"><tr align="right"><td><b>Всего голосов: '.$allvote.'</b></td></tr></table><font class="text">Учет видется с 1-го числа текущего месяца!<br><b>Трое самых активных в конце месяца получат приз!<b></font><br>
');
?>
xaos27: у меня такой скрипт если помог есть кнопа :)
А куда ты его вставляешь7 И как он тебя в БД входит?
DGINS23: А куда ты его вставляешь7 И как он тебя в БД входит?
у него под мой вед ,а не под дле
xaos27: если руки примые и под дле можно сделать
ну дак ты сделай раз у тебя руки прямые.





