Оптимизация запроса

pixelranger

Новичок
Оптимизация запроса

PHP:
$sql = "SELECT * FROM `modx_marka` WHERE type='".$type."' ORDER BY `title` ASC LIMIT 0,".$num0."";
$result = $modx->db->query($sql);
$num = mysql_num_rows($result);

if ($num > 0) {
  $i=0;	
  while($i < $num){	
    $row = $modx->db->getRow($result);	
    $gr5 .= '<li class="easyfix"><div class="img-marka"><img src="images/model/'.mysql_result($result,$i,"image").
    '"  alt="'.mysql_result($result,$i,"title").'" /></div><div class="link-marka">
    <a href="index.php?id='.$dmodel.'&marka='.mysql_result($result,$i,"id").'">'.mysql_result($result,$i,"title").'</a></div>';

    //кол-во объявлений
    $sql2 = "SELECT * FROM `modx_bill` WHERE id_marka='".mysql_result($result,$i,"id")."' ";
    $result2 = $modx->db->query($sql2);
    $num2 = mysql_num_rows($result2);
    $gr5 .= '	<div class="coun-marka">['.$num2.']</div></li>';
    $i++;
  }
}
Выполняю запрос, кол-во запросов превышает 100, пробловал Left Join но там не работает функция count в запросе. Запрос выводит список марок, и кол-во объявлений. Помогите решить проблему.
---
подправил форматирование
 

Фанат

oncle terrible
Команда форума
Я вот офигеваю. Как вы сами-то свой код читаете, такой, враскоряку? писали бы уж тогда хоть совсем без отступов, чем так - строки от балды болтаются по всему экрану.

-~{}~ 27.10.08 13:02:

почему ты решил, что не работает count в запросе?
приведи запрос

а, главное, почемы ты count все равно не используешь, даже во вложенном запросе, а считаешь строки способом, за который программистов убивают без выплаты выходного пособия?

-~{}~ 27.10.08 13:03:

блин. это он подправил, называется.
нафига было трогать то что тебе уже нормально сделали?
 

pixelranger

Новичок
Код:
SELECT mod.*, count(c.id) AS col FROM `modx_marka`AS mod 
LEFT JOIN `modx_model` AS c ON (c.id_model = mod.id)  WHERE mod.type='".$type."' 
ORDER BY `mod.title` ASC LIMIT 0,".$num0."";
 

pixelranger

Новичок
ссылку посмотрел, так и ен пойму что правильно а что не правильно у меня.
 

Фанат

oncle terrible
Команда форума
если ты что-то считаешь, то надо применять group by
напиши сначала запрос, который выдает количество комментариев
после того, как он заработает - делай джойн
 
Сверху