|
|
|
| есть подборка статей. В индексном файле выглядит так:
Заголовок статьи со ссылкой на статью
ссылка на комментарии
Заголовок статьи со ссылкой на статью
ссылка на комментарии
Заголовок статьи со ссылкой на статью
ссылка на комментарии
...
То есть, вроде обычного блога.
Проблема в том, что нужно вывести количество комментариев к каждой статье, но не хочется делать sql-запрос на определение количества после каждого заголовка. На данный момент, я представляю себе такой механизм:
<?php
$sql ='SELECT * FROM статьи';
$result=mysql_query($sql);
while ($sql_ar=mysql_fetch_assoc($result)) {
echo 'Заголовок статьи';
$sql ='SELECT SQL_CALC_FOUND_ROWS id FROM комментарии WHERE id_статьи='.$sql_ar['id'];
$FOUND=mysql_query($sql);
$sql='SELECT FOUND_ROWS()';
$FOUND_ROWS=mysql_query($sql);
$комментариев=mysql_fetch_row($FOUND_ROWS);
echo 'Комментарии '.$комментариев;
mysql_free_result($FOUND_ROWS);
}
mysql_free_result($result);
?>
Подозреваю, что есть способы попроще, чем делать новый запрос после считывания очередной строки массива, полученного основным запросом. Буду очень признателен. если кто-то подскажет, как уменьшить количество запросов к базе. | |
|
|
|
|
|
|
|
для: kosta_in_net
(02.07.2009 в 18:35)
| | У Вас каша в голове.
Модификатор SQL_CALC_FOUND_ROWS имеет смысл лишь для запроса, содержащего LIMIT
SELECT FOUND_ROWS() вернет число найденных строк без учета ограничения этим LIMIT и только | |
|
|
|
|
|
|
|
для: Trianon
(02.07.2009 в 19:25)
| | значит без SQL_CALC_FOUND_ROWS. Я ж примерно написал, на скорую руку. Если бы я написал отличный код, зачем бы я спрашивал, как его усовершенствовать?
Какие-то есть более конструктивные предложения, помимо оскорблений моей каши? | |
|
|
|
|
|
|
|
для: kosta_in_net
(02.07.2009 в 19:37)
| | В таком ключе диалога - пожалуй нет... | |
|
|
|
|
|
|
|
для: Trianon
(02.07.2009 в 19:47)
| | Я бы с радостью поменял ключ, только как? Я писал кучу програм под винду и скриптов под веб-сервер, но именно в скуеле опыта мало. | |
|
|
|
|
|
|
|
|
для: Trianon
(03.07.2009 в 00:52)
| | Спасибо, помогло. | |
|
|
|