SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.06.2012 09:47:08

Nuriddin
Участник
Зарегистрирован: 08.06.2012
Сообщений: 2

Здраствуйте. Прошу Вас помочь в следующем.

Здраствуйте. Прошу Вас помочь в следующем. Есть CMS Land Down Under при запуске выводит вот такое вот ошибку.
Fatal error : MySQL error : Incorrect integer value: '' for column 'online_hammer' at row 1
Я смотрел где файл common.php там
/* ======== Who's online and shield protection ======== */

if (!$cfg['disablewhosonline'] || $cfg['shieldenabled'])
{
if ($usr['level']>0)
{
$sql = ldu_query("SELECT online_id FROM $db_online WHERE online_userid = '".$usr['id']."'");

if ($row = ldu_fetch_array($sql))
{
$online_count = 1;
if ($cfg['shieldenabled'])
{
$sql2 = ldu_query("SELECT online_shield, online_action, online_hammer, online_lastseen FROM $db_online WHERE online_userid = '".$usr['id']."'");
if ($row = ldu_fetch_array($sql2))
{
$shield_limit = $row['online_shield'];
$shield_action = $row['online_action'];
$shield_hammer = ldu_shield_hammer($row['online_hammer'],$shield_action,$row['online_lastseen']);
}
}
$sql2 = ldu_query("UPDATE $db_online SET online_lastseen='".$sys['now']."', online_location='".$location."', online_hammer='$shield_hammer' WHERE online_userid='".$usr['id']."'");
}
else
{
$sql2 = ldu_query("INSERT INTO $db_online (online_ip, online_name, online_lastseen, online_location, online_userid, online_shield, online_hammer) VALUES ('".$usr['ip']."', '".$usr['full_name']."', '".$sys['now']."', '".$location."', '".$usr['id']."', '0', '0')");
}
}
else
{
$sql = ldu_query("SELECT COUNT(*) FROM $db_online WHERE online_ip = '".$usr['ip']."'");
$online_count = ldu_result($sql,0,'COUNT(*)');

if ($online_count>0)
{
if ($cfg['shieldenabled'])
{
$sql2 = ldu_query("SELECT online_shield, online_action, online_hammer, online_lastseen FROM $db_online WHERE online_ip = '".$usr['ip']."'");
if ($row = ldu_fetch_array($sql2))
{
$shield_limit = $row['online_shield'];
$shield_action = $row['online_action'];
$shield_hammer = ldu_shield_hammer($row['online_hammer'],$shield_action,$row['online_lastseen']);
}
}
$sql2 = ldu_query("UPDATE $db_online SET online_lastseen='".$sys['now']."', online_location='".$location."', online_hammer='$shield_hammer' WHERE online_ip='".$usr['ip']."'");
}
else
{
$sql2 = ldu_query("INSERT INTO $db_online (online_ip, online_name, online_lastseen, online_location, online_userid, online_shield, online_hammer) VALUES ('".$usr['ip']."', 'v', '".$sys['now']."', '".$location."', '-1', '0', '0')");
}
}

$sql = ldu_query("DELETE FROM $db_online WHERE online_lastseen<'$online_timedout'");
$sql = ldu_query("SELECT o.online_name, o.online_userid, u.user_level FROM $db_online o, $db_users u WHERE o.online_name NOT LIKE 'v' AND o.online_userid=u.user_id ORDER BY online_name");
$sql1 = ldu_query("SELECT COUNT(*) FROM $db_online WHERE online_name='v'");
$sql3 = ldu_query("SELECT stat_value FROM $db_stats where stat_name='maxusers' LIMIT 1");

$sys['whosonline_reg_count'] = ldu_num_rows($sql);
$sys['whosonline_vis_count'] = ldu_result($sql1,0,'COUNT(*)');
$sys['whosonline_all_count'] = $sys['whosonline_reg_count'] + $sys['whosonline_vis_count'];

$ii=0;
$out['whosonline_reg_list']="<ul>";
while ($row = ldu_fetch_array($sql))
{
$out['whosonline_reg_list'] .= ($ii>0) ? '<li> ' : '';
$row['isadmin'] = ldu_getrights($row['online_userid'], $row['user_level'], 'forums', 'all', 'adm');
$out['whosonline_reg_list'] .= ($row['isadmin']) ? '<strong>' : '' ;
$out['whosonline_reg_list'] .= ldu_build_user($row['online_userid'], ldu_cc($row['online_name']), $row['user_level']);
$out['whosonline_reg_list'] .= ($row['isadmin']) ? '</strong>' : '' ;
$out['whosonline_reg_list'].= "</li>";
$ldu_usersonline[] = $row['online_userid'];
$ii++;
}
$out['whosonline_reg_list'].="</ul>";



if ($row = ldu_fetch_array($sql3))
{ $maxusers = $row[0]; }
else
{ $sql = ldu_query("INSERT INTO $db_stats (stat_name, stat_value) VALUES ('maxusers', '1')"); }

if ($maxusers<$sys['whosonline_all_count'])
{ $sql = ldu_query("UPDATE $db_stats SET stat_value='".$sys['whosonline_all_count']."' WHERE stat_name='maxusers'"); }
}

На сколько я понял оно и отвечает за вывод инфы об онлайне пользователей но ошибка на лицо.

Неактивен

 

#2 08.06.2012 10:45:40

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Здраствуйте. Прошу Вас помочь в следующем.

Есть подозрение, что переменная $shield_hammer должна быть целочисленной, а таковой не является. А лучше всего найдите конкретный запрос, который вызывает ошибку (обложите проблемное место логами), и приведите его сюда.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 08.06.2012 11:09:12

Nuriddin
Участник
Зарегистрирован: 08.06.2012
Сообщений: 2

Re: Здраствуйте. Прошу Вас помочь в следующем.

Временно закоментировал блок скрипта, пока что работает. Думаю чем копатса в скрипте другого человека я напишу свой. Или же постараюсь найти баг в скрипте. Дело в том что скрипт был написал под рнр 4 а ошибка выдает на рнр5

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson