Страница 1 из 1

Оптимизация кода

СообщениеДобавлено: 01 янв 2010, 19:09
Zver
В общем имеется код модуля "онлайн", который выводит общее количество поситителей, гостей и зарегистрированных пользователей. Код очень грамоздкий, с большим количеством запросов к БД. Возможно ли его оптимизировать?
Код: Выделить всёРазвернуть

<?php
function online() {
    
    
$wine 300
    
$table_online "online";
    
    global 
$lang;
    
    
$sql_update "DELETE FROM ".$table_online." WHERE `unix`+".$wine." < ".time()." OR `ip` = '".$_SERVER['REMOTE_ADDR']."'";
    
$result_update mysql_query($sql_update) or die(mysql_error());
    
    
$logid $_SESSION['logid'];
    if(empty(
$logid)){
        
$logid 0;
    }
    
    
$sql_insert "INSERT INTO ".$table_online." VALUES (NULL, '".$_SERVER['REMOTE_ADDR']."', '".time()."', '".date('Y-m-d')."', '".date('H:i:s')."', '".$logid."')";
    
$result_insert mysql_query($sql_insert) or die(mysql_error());
    
    
$sql_sel "SELECT `id` FROM ".$table_online;
    
$result_sel mysql_query($sql_sel) or die(mysql_error());
    
    
$online_people mysql_num_rows($result_sel);
    
$online_people = (string) $online_people;
    
    
$rain strlen($online_people) - 1;
    
    if(
$online_people[$rain] == 2||$online_people[$rain] == 3
    
||$online_people[$rain] == 4
    
||(strlen($online_people)!=1&&$online_people[strlen($online_people)-2]!=1))
    
    
    
$line $lang['online']['users']; else $line $lang['online']['user'];
    
    
$gst_sql 'SELECT count(*) FROM `online` WHERE `log_id` = "0"';
    
$gst_res mysql_query($gst_sql);    
    
$gst_row mysql_fetch_array($gst_res);
    
    
$mbr_sql 'SELECT count(*) FROM online WHERE log_id > "0"';
    
$mbr_res mysql_query($mbr_sql);    
    
$mbr_row mysql_fetch_array($mbr_res);

    
$ret =  $lang['online']['now']." <strong>".$online_people."</strong>,\n";
    
$ret .= $lang['online']['from'].' '.$gst_row[0].' '.$line.' ';
    
$ret .= $lang['online']['and'].' '.$mbr_row[0].' '.$lang['online']['reg_users'];
    
    if(empty(
$logid)){ $logid 0; }    
    if(
$logid == 0){
        
$st $lang['online']['guest'];
    } else {
        
$st $lang['online']['member'];
    }
    
    if(
$st == $lang['online']['member']){
        
$sql 'SELECT * FROM users WHERE id = "'.$_SESSION['logid'].'"';
        
$res mysql_query($sql);
        
$row mysql_fetch_array($res);
        
        
$user['name'] = $row['username'];
        
$user['id'] = $row['id'];
        
        
$ret .= '<a href="?page=users&action=view-profile&id='.$user['id'].'">'.$row['username'].'</a>,';
    }

    return 
$ret;
}
?>

Re: Оптимизация кода

СообщениеДобавлено: 02 янв 2010, 00:15
On-line
Еще сам не разобрался ? xD