заявка за извеждане на общо коментари

embaka

Registered
това ми е заявката и извеждането ако има добавен някаква статия

Код:
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view,rating,q_vote FROM data WHERE secret=0 AND cat='$cat' ORDER BY id DESC LIMIT $start, $num",$db) or die ("<p>Няма въведени данни за тази категория!</p>");

if (!$result)
{
echo "<p>Въпроса, по който търсихте не може да бъде открит.</p>";
//exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result); 

do 
{

$r = $myrow["rating"]/$myrow["q_vote"];
$r = intval($r);

printf ("<table align='center' class='post'>
         
		 <tr>
         <td class='post_title'>
		 <p class='post_name'><a href='view_post.php?id=%s'><img class='mini' align='left' src='%s'></a>
		 <a href='view_post.php?id=%s' class='links' alt='%s'>%s</a></p>
		 <p class='post_adds'>Добавен на: %s</p>
		 <p class='post_adds'>Автор: %s</p></td>
         </tr>
         
		 <tr>
         <td><p>%s</p></td></tr>
		 <tr>
		 <td class='post_title'>
		 <p class='post_view'>Преглеждания: %s    Коментари: (%s)    Рейтинг: <img src='img/%s.gif' align='absmiddle'></p></td>
         </tr>
         
		 </table><br>",$myrow["id"],$myrow["mini_img"],$myrow["id"],$myrow["title"],$myrow["title"], $myrow["date"],$myrow["author"],$myrow["description"], $myrow["view"], $r);



}
while ($myrow = mysql_fetch_array($result));

искам да изисли колко коментара има в тази статия


полетата в comments таблицата са ми:
id, post, author, text, date[/code]
 
искам да е с една заявка и да не изчислява всички добавени коментари а само за тази статия
 
SELECT d.id, d.title, d.description, d.date, d.author, d.mini_img, d.view,rating, d.q_vote, count(c.id) as count
FROM data as d LEFT OUTER JOIN comments as c ON d.id = c.полето, чрез което свързваш двете таблици
WHERE secret=0 AND cat='$cat' GROUP BY d.id ORDER BY id DESC LIMIT $start, $num

полето, чрез което свързваш двете таблици - тук трябва да напишеш полето от таблицата с коментарите, в което записваш за коя новина (или каквото е) се отнася коментара.

GROUP BY d.id - пробвай първо без него, а после с него. Не знам какво точно искаш да изкараш. Ако искаш да изкараш всички резултати от категорията по отделно с броя на коментарите им - остави го

Броя на коментарите се изкарва с count :)

Тествано е и работи. Единствено ако имаш някакви грешки по свързването на двете таблици. А така като гледам ти дори май нямаш връзка между тях, или аз не я открих :)
 
направих я така: $result = mysql_query("SELECT d.id, d.title, d.description, d.date, d.author, d.mini_img, d.view, d.rating, d.q_vote, count(c.id) as count
FROM data as d LEFT OUTER JOIN comments as c ON d.id = c.post WHERE secret=0 AND cat='$cat' ORDER BY id DESC LIMIT $start, $num",$db) or die ("<p>Няма въведени данни за тази категория!</p>");

но има един проблем, че сега ми изкарва само по 1 статия в категория, така е във всички категории
 

Back
Горе