Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Настройка и Изменение (http://forum.mynuke.ru/forumdisplay.php?f=11)
-   -   Обсуждение темы "Оптимизация PHP-NUKE" (http://forum.mynuke.ru/showthread.php?t=1273)

kentbrn 30.03.2006 12:51

Уважаемый soniks помоги разобраться в вышеперечисленными мною блоками и решить проблему с пэйджами ! и еще возник вопрос в блоке block-User_Info.php
$numrows = $db->sql_numrows($db->sql_query("SELECT user_id FROM $user_prefix"._users.""));
$result = $db->sql_query("SELECT uname, guest FROM $prefix"._session." WHERE guest='0'");
$member_online_num = $db->sql_numrows($result);
$who_online_now = "";
$i = 1;
while ($session = $db->sql_fetchrow($result)) {
if (isset($session["guest"]) and $session["guest"] == 0) {
if ($i < 10) {
$who_online_now .= "$i.<A HREF=\"". IPB_DIR . "/index.php?showuser=$user_id\">$session[uname]</a><br>\n";
} else {
$who_online_now .= "<A HREF=\"". IPB_DIR . "/index.php?showuser=$user_id\">$session[uname]</a><br>\n";
}
как сделать чтоб это заработало!? $user_id чтоб был пользователя который в онлайн сидит

Soniks 30.03.2006 21:54

PHP код:
 $result $db->sql_query("SELECT s.uname, u.user_id  FROM $prefix"._session." AS s LEFT JOIN $prefix"._users." AS u ON(u.username=s.uname) WHERE s.guest='0'");
$member_online_num $db->sql_numrows($result);
$who_online_now "";
$i 1;
while (
$session $db->sql_fetchrow($result)) {
if (
$i 10) {
$who_online_now .= "$i.<A HREF=\""IPB_DIR "/index.php?showuser=$session[user_id]\">$session[uname]</a><br>\n";
} else {
$who_online_now .= "<A HREF=\""IPB_DIR "/index.php?showuser=$session[user_id]\">$session[uname]</a><br>\n";
}
$i++;


Kilo 31.03.2006 15:21

Soniks, вопрос такой. Nuke 7,9 RUS, Решил оптимизировать свой сайт у меня сейчас 460 запросов на главной.
так вот после изменения файла mainfile.php количество запосов стало 156, это результат.
Но стои у меня один блок называется time_left, (отсчитывает время до события), вот он перестал работать, пишет ошибку :
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in z:\home\yugbiznes.com\www\blocks\block-Towncrier_ticker.php on line 31

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in z:\home\yugbiznes.com\www\includes\sql_layer.php on line 285

Вот код строки 285 файла sql_layer.php:
Код:
$row = mysql_fetch_row($res);


видимо это потому что блок от старых версий...

и после изменений файла news/index.php в новостях перестали отображаться картинки от тем.

Soniks 31.03.2006 17:40

Kilo нужно изменить способ подключения к бд используя переменную $db, а не $dbi

mysql_fetch_array на $db->sql_fetchrow
mysql_query на $db->sql_query
mysql_fetch_row на $db->sql_fetchrow
mysql_num_rows на $db->sql_numrows
mysql_free_result на $db->sql_freeresult

Kilo 31.03.2006 18:07

Спасибо Soniks, заработало!

kentbrn 31.03.2006 20:54

Вложений: 1
Спасибо Soniks блок заработал,правда оптимизировать хотелось бы его еще оптимизировать 4 запроса кушает, внизу код:
Код:
if (eregi("block-User_Info.php",$_SERVER['PHP_SELF'])) { Header("Location: index.php"); die(); } $content = ""; global $user, $cookie, $prefix, $user_prefix, $db, $anonymous, $sitekey; mt_srand ((double)microtime()*1000000); $maxran = 1000000; $random_num = mt_rand(0, $maxran); $datekey = date("F j"); $rcode = hexdec(md5($_SERVER[HTTP_USER_AGENT] . $sitekey . $random_num . $datekey)); $code = substr($rcode, 2, 10); cookiedecode($user); $uname = $cookie[1]; $lasturow = $db->sql_fetchrow($db->sql_query("SELECT user_id, username FROM $user_prefix"._users." ORDER BY user_id DESC LIMIT 0,1")); $lastuser = filter($lasturow['username'], nohtml); $user_id = ($lasturow['user_id']); $numrows = $db->sql_numrows($db->sql_query("SELECT user_id FROM $user_prefix"._users."")); $result = $db->sql_query("SELECT s.uname, u.user_id FROM $prefix"._session." AS s LEFT JOIN $prefix"._users." AS u ON(u.username=s.uname) WHERE s.guest='0'"); $member_online_num = $db->sql_numrows($result); $who_online_now = ""; $i = 1; while ($session = $db->sql_fetchrow($result)) { if ($i < 10) { $who_online_now .= "$i.<A HREF=\"". IPB_DIR . "/index.php?showuser=$session[user_id]\">$session[uname]</a><br>\n"; } else { $who_online_now .= "<A HREF=\"". IPB_DIR . "/index.php?showuser=$session[user_id]\">$session[uname]</a><br>\n"; } $i++; } $Today = getdate(); //Formatting Current Date $month = $Today['month']; $mday = $Today['mday']; $year = $Today['year']; //Formatting Previous Date $pmonth = $Today['month']; $pmday = $Today['mday']; $pmday = $mday-1; $pyear = $Today['year']; //Month conversion into numeric mode if ($pmonth=="January") { $pmonth=1; } else if ($pmonth=="February") { $pmonth=2; } else if ($pmonth=="March") { $pmonth=3; } else if ($pmonth=="April") { $pmonth=4; } else if ($pmonth=="May") { $pmonth=5; } else if ($pmonth=="June") { $pmonth=6; } else if ($pmonth=="July") { $pmonth=7; } else if ($pmonth=="August") { $pmonth=8; } else if ($pmonth=="September") { $pmonth=9; } else if ($pmonth=="October") { $pmonth=10; } else if ($pmonth=="November") { $pmonth=11; } else if ($pmonth=="December") { $pmonth=12; }; $test = mktime (0,0,0,$pmonth,$pmday,$pyear,1); //Creating SQL parameter $curDate2 = "%".$month[0].$month[1].$month[2]."%".$mday."%".$year."%"; $preday = strftime ("%d",$test); $premonth = strftime ("%B",$test); $preyear = strftime ("%Y",$test); $curDateP = "%".$premonth[0].$premonth[1].$premonth[2]."%".$preday."%".$preyear."%"; $guest_online_num = $db->sql_numrows($db->sql_query("SELECT uname FROM ".$prefix."_session WHERE guest='1'")); $member_online_num = $db->sql_numrows($db->sql_query("SELECT uname FROM ".$prefix."_session WHERE guest='0'")); $who_online_num = $guest_online_num + $member_online_num; $content .= "<form action=\"modules.php?name=Your_Account\" method=\"post\">"; $content .= "<img src=\"images/blocks/group.gif\" ><b>"._BVISIT.": $who_online_num</b>\n<br>\n"; $content .= "<img src=\"images/blocks/ur-anony.gif\" > "._BVIS.": <b>$guest_online_num</b><br>\n"; $content .= "<img src=\"images/blocks/ur-member.gif\" > "._BMEM.": <b>$member_online_num </b></font><br>\n"; if ($member_online_num > 0) { $content .= "<font class=user>$who_online_now </font><br>"; } $content .= "<img src=\"images/blocks/group.gif\"> <b>"._BMEMP.":</b></font><br>\n"; $content .= "<img src=\"images/blocks/link.gif\">"._BLATEST.": <A HREF=\"". IPB_DIR . "/index.php?showuser=$user_id\"><b>$lastuser</b></a><br>\n"; $content .= "<img src=\"images/blocks/link.gif\"> "._BOVER.": <b>$numrows</b></font>\n"; $content .= "</form>";

так же блок block-CPG-Random_pictures.php 5 запросов :(
помоги оптимизировать пожалуйста, надеюсь на твою помощь!

Soniks 31.03.2006 22:05

граждане прошу не требовать и не просить то или иное! по мере появления свободного времени я буду выкладывать оптимизацию! а то рассердите, и буду банить! :evil:

Kilo 07.04.2006 11:38

Soniks, оптимизировал пока только mainfile.php и блок админитсрация перестал выводить инфу. Возвращаю mainfile.php до оптимизации, блок работает. Nuke 7.9 rus без патчей и хаков.
Где смотреть код? Как должно быть?

Выводит ошибку: Warning: Missing argument 1 for adminblock() in /home/196021/http/mainfile.php on line 878.

А вот код строки 878: function adminblock($blockinfo) {

Soniks 07.04.2006 12:44

Kilo не целиком оптимизировали mainfile.php, пропустили код в вызови функции adminblock($blockinfo) в функции blocks()

Kilo 15.04.2006 17:50

Цитата: Сообщение от Soniks
Kilo не целиком оптимизировали mainfile.php, пропустили код в вызови функции adminblock($blockinfo) в функции blocks()



Итак, четыре раза перепробовал прооптимизировать mainfile.php, думал мож гдето сточку пропускаю, ну нет все точно, в копейку сделано!
И таже самая ошибка. Блок-админка не отображается...
И что самое интересное, это только на IE, сегодня открыл сайт через Оперу, там все прекрасно! В чем же тогда соль...?


Часовой пояс GMT +4, время: 05:17.

Copyright © 2005 by Soniks