Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Можно ли как то ускорить выполнение!

Сообщения:  [1-5] 

 
 автор: vbps   (29.01.2008 в 17:22)   письмо автору
 
   для: Faraon   (28.01.2008 в 22:07)
 



<?

function genre_count($id) {
GLOBAL 
$db,$val;
$s["genre_id"] = "genre_id=".$id;
if (!!
$val["model_id"]) {
$s["model_id"] = "(sph) regexp '[[:<:]]".$val["model_id"]."[[:>:]]'";
}
$item_request "WHERE ".implode(" AND ",$s);
$total=mysql_result(mysql_query("SELECT count(*) FROM ".$db["prefix"]."item ".$item_request.";"),0,0);
return(
$total);
}

function 
genre_list($id) {
    GLOBAL 
$db,$var,$val,$TMPL;
$r=mysql_query("SELECT * FROM ".$db["prefix"]."genre ORDER BY sort_id DESC, name") or die(mysql_error());
$cnt=mysql_num_rows($r); if ($cnt==0) return;
$num=0;
while (
$R=mysql_fetch_assoc($r)) {
$genre_count genre_count($R["id"]);
if (!!
$genre_count) {
$num++;
$s=$TMPL["menu3"];
if (
$id == $R["id"]) $s=$TMPL["menu4"];
$s=str_replace("[GENRE_ID]",$R["id"],$s);
$s=str_replace("[GENRE]",$R["name"],$s);
$s=str_replace("[COUNT]",$genre_count,$s);
if (
$num==1) {$tmpl2=$TMPL["menu2"];} else {$tmpl2="";}
if (
$num==$val["genre_column"]) {$tmpl5=$TMPL["menu5"]; $num=0;} else {$tmpl5="";}
$s=$tmpl2.$s.$tmpl5;
$list[$R["id"]] = $s;
}
}
if (!!
count($list)) {
$h implode("\n".$TMPL["menu7"]."\n",$list);
}
$h $TMPL["menu1"].$h.$TMPL["menu6"];
return(
$h);
}

?>

   
 
 автор: Faraon   (28.01.2008 в 22:07)   письмо автору
 
   для: vbps   (28.01.2008 в 21:46)
 

Н-да, мало понятно, Вы уж кусок кода приведите, где все это Вы используете вместе с циклами.

   
 
 автор: vbps   (28.01.2008 в 21:46)   письмо автору
 
   для: cheops   (26.01.2008 в 13:01)
 

В смысле вынести?

Одна функция пробегает по 1-ой таблице соберая список категорий, другая же используется в цикле этой функции для получения кол-ва записей для каждой категории из 2-ой таблицы. Это нужно что бы не отображать пустые категории.

Думаю как еще извратится, но пока ничего не придумал. Пробовал вмето фукции заунуть запрос в цикл, но результат тот же (запросов к базе меньше не становится).

   
 
 автор: cheops   (26.01.2008 в 13:01)   письмо автору
 
   для: vbps   (25.01.2008 в 15:20)
 

Вынести из цикла функцию нельзя? Или цикл пробегает по разным таблицам?

   
 
 автор: vbps   (25.01.2008 в 15:20)   письмо автору
 
 

использую:

Как можно еще посчитать? Это дело использую в функции для подсчета количества содержимого в item и саму функцию использую в цикле, что занимает примерно от 0,7 до 1,6 сек. Много. Заранее посчитать и сохранить нельзя, все должно просчитываться динамически.


$count=mysql_result(mysql_query("SELECT count(*) FROM ".$db["prefix"]."item ".$item_request.";"),0,0);


Есть какие то возможные решения?

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования