[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: 2 Уменьшить количество запросов к базе MySql...
linf
Собственно говоря, вот код:

$result = mysql_query("SELECT COUNT(*) as `count`, `type` FROM `magazin` WHERE `id` LIKE '$code%' GROUP BY `type`", $db);

for($i=0;$i<mysql_num_rows($result);$i++)
{
mysql_data_seek($result, $i);
$mass = mysql_fetch_assoc($result);

//название типа
echo $mass[type]." [".$mass[count]."]<BR>";

//новый запрос:
$result2 = mysql_query("SELECT * FROM `magazin` WHERE `id` LIKE '$code%' AND `type`='$mass[type]' ORDER BY `name`", $db);
for($a=0;$a<mysql_num_rows($result2);$a++) {
mysql_data_seek($result2, $a);
$mass2 = mysql_fetch_assoc($result2);
//вывод содержимого типа:
echo $mass2[name]."<BR>";
}
echo "<BR>";
}


Можно ли избежать такого огромного колличества запросов?
Тем более, что второй запрос при прогонке цикла выполняется очень много раз



Спустя 1 час, 50 секунд (7.10.2010 - 03:50) arvitaly написал(а):
select magazin.type, count, name from magazin left join ( select count(*) as count, type from magazin where id like '$code%' group by type ) as n on n.type = magazin.type where id like '$code%' order by magazin.type asc, name asc


На спящий разум только такой быдлозапрос пришел) завтра навен что-нить получше придет

Спустя 2 дня, 25 минут, 1 секунда (9.10.2010 - 04:15) linf написал(а):
arvitaly, еще бы понять что все это значит... rolleyes.gif

Спустя 1 час, 36 минут, 23 секунды (9.10.2010 - 05:52) arvitaly написал(а):
Это значит запрос к mysql smile.gif

А вот еще, тут count только в первых строках

select magazin.type, count, name from magazin left join ( select count(*) as count, type,id  from (select * from magazin where id like '$code%' order by name asc) c group by type ) as n on n.id = magazin.id where magazin.id like '$code%' order by magazin.type asc, name asc


_____________
Live in new format =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.