|
|
|
| Здравствуйте .Помогите решить задачу...
Делаю выборку из таблицы скрипта комментариев..для каждой статьи p_id
<?
$res=mysql_query( "SELECT
DATE_FORMAT(`date`, '%d-%m-%Y') AS`dat`,
`id_comment`,
`id_page`,
`author`,
`comment`,
FROM `comments`
WHERE `id_page`= '" .$rwr['p_id']."'
", $db);
echo ' <br> Комментариев к статье : '.mysql_num_rows($res);
while ($rw=mysql_fetch_array($res))
{
echo ' автор: '.$rw['author'] .'коментариев :'.???.'
<p>'.htmlspecialchars($rw['comment']).'</p>';
}
|
И подсчет к-ва комментов для каждого автора
<?
$r=mysql_query("SELECT `author`,COUNT(comment) AS cnt FROM `comments` GROUP BY `author` ", $db);
while ($rww=mysql_fetch_array($r))
{
echo ' <br>'.$rww['author']. '----> '.$rww['cnt'];
}
|
Получается два цикла а мне надо чтобы было все в одном
помогите... как одним запросом вывести комментарии к статье и подсчитать общее колличество комментариев для каждого автора | |
|
|
|
|
|
|
|
для: serjinio
(22.09.2008 в 18:46)
| | Подскажите реально ли это сделать??? | |
|
|
|
|
|
|
|
для: serjinio
(23.09.2008 в 00:20)
| | Пробовал
<?
$ress=mysql_query("SELECT
c.author AS c_a,
c.comment AS s_com,
COUNT (s.comment) AS cnt
FROM comments AS c
LEFT JOIN comments AS s
ON c.author = s.author
GROUP BY s.author
WHERE c.id_page =16
", $db);
while ($rww=mysql_fetch_array($ress))
{
echo ' <br>'.$rww['c_a']. '---->'.$rww['cnt'].'------->>>'.$rww['s_com'];
}
|
но как ставлю условие WHERE для конкретной страницы кричит о ошибке.... | |
|
|
|
|
|
|
|
для: serjinio
(23.09.2008 в 03:01)
| | WHERE всегда должно быть перед GROUP BY
SELECT [STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY]
[DISTINCT | DISTINCTROW | ALL]
select_expression,...
[INTO {OUTFILE | DUMPFILE} 'file_name' export_options]
[FROM table_references
[WHERE where_definition]
[GROUP BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
[HAVING where_definition]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
[LIMIT [offset,] rows | rows OFFSET offset]
[PROCEDURE procedure_name(argument_list)]
[FOR UPDATE | LOCK IN SHARE MODE]] | |
|
|
|
|
|
|
|
для: xx77
(23.09.2008 в 06:10)
| | Не..... не помогло........
Тысяча извинений....в первом варианте помогло...
огромнейшее спасибо за помощь!!! | |
|
|
|
|
|
|
|
для: serjinio
(23.09.2008 в 14:35)
| | Забыл выложить рабочую версию
<?php
$res=mysql_query("SELECT
DATE_FORMAT(`date`, '%d-%m-%Y') AS`dat`,
DATE_FORMAT(`date`, '%k:%i') AS `t`,
`id_comment`,
`id_page`,
`author`,
`email`,
`url`,
`comment`,
`approved`,
COUNT(`comment`) AS cnt
FROM `comments`
WHERE `id_page`= '" .$rwr['p_id']."'
GROUP BY `author`
", $db);
echo ' <h3>'.mysql_num_rows($res).' Комментариев к статье “'.$rwr['p_t'].'”</h3>';
while ($rw=mysql_fetch_array($res))
{
echo '<li class="alt" id="comment-'.$rw['id_comment'].'">';
if ($rw['approved']==0) echo $rw['author']. ' <span class="n-com"> (Комментариев: '.$rw['cnt'].')</span>';
if ($rw['approved']==1) echo '<noindex><a href="'.$rw['url'].'" rel="external nofollow">'.$rw['author'].'</a></noindex><span class="n-com"> (Комментариев: '.$rw['cnt'].')</span>';
if ($rw['approved']==2) echo '<a href="'.$rw['url'].'">'.$rw['author'].'</a><span class="n-com"> (Комментариев: '.$rw['cnt'].')</span>';
--------------------
echo '<p>'.htmlspecialchars($rw['comment']).'</p>';
}
?>
|
| |
|
|
|