Count и sql

stoqnski

Registered
Здравейте искам да постигна този краен резултат :

Категория1 ( 5 )
Категория2 ( 3 )
Категория3 ( 200 )

т.е. към съответната категория , колко новини има

Структура на таблиците
news
-id
-ime
-...
-kategoria

kategorii
-cid
-cime

В таблица kategoria в news приема стойност cid от kategorii .

Проблема е следния :
Преди малко ми се наложи да преброя колко новини има в дадена категория , но се обърках кое трябва да преброя :D

$our3 = mysql_query("SELECT count(cid) as kbroi FROM kategorii ");
while($ra=mysql_fetch_array($our3)){
echo "<td>$ra[kbroi]</td> ";

но това брои колко категории има , та си мисля , че ще трябва някакъв по-сложен count с RIGHT JOIN ?
 
Най-простия ти вариант е така да преброиш в while-a в който извикваш категориите една по една. И броиш колко новини има за зададената категория.

Код:
$our3 = mysql_query("SELECT count(kategoria) as kbroi FROM news WHERE kategoria = '$category'"); 

while($ra=mysql_fetch_array($our3)){ 

echo "<td>$ra[kbroi]</td> "; 

}
 
deam0n каза:
Най-простия ти вариант е така да преброиш в while-a в който извикваш категориите една по една. И броиш колко новини има за зададената категория.

Код:
$our3 = mysql_query("SELECT count(kategoria) as kbroi FROM news WHERE kategoria = '$category'"); 

while($ra=mysql_fetch_array($our3)){ 

echo "<td>$ra[kbroi]</td> "; 

}

$our3 = mysql_query("SELECT count(kategoria) as kbroi FROM news WHERE kategoria = '$category'");

while($ra=mysql_fetch_array($our3)){

echo "<td>$ra[kbroi]</td> ";

}

Да , аз се сетих за това , но за $kategory ще ми трябва друга заявка .

Искам да го направя с една заявка , това не ми върши работа .
 
stoqnski каза:

С една заявка ще е нещо от сорта:

PHP:
$our3 = "SELECT *, count(news.kategoriq) as kbroi FROM news, kategorii WHERE news.kategoriq = kategorii.cid";

while($ra=mysql_fetch_array($our3)){ 

echo "<td>$ra[cime] ( $ra[kbroi] )</td> "; 

}
 
оправих имената на таблиците и т.н. , но ми дава грешка :

Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in

...
 
stoqnski каза:
оправих имената на таблиците и т.н. , но ми дава грешка :

Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in

...

В бързината съм изпуснал mysql_query

$our3 = mysql_query("ЗАЯКАТА") or die(mysql_error());
 
PHP:
	<?
$results = mysql_query("
SELECT *, count(news.kategoria) as kbroi FROM news, kategorii WHERE news.kategoria = kategorii.cid 
") or die (mysql_error());
while($row= mysql_fetch_assoc($results)) {
echo "<a href=\"kategorii.php?cid=$row[cid]\">$row[cime]</a> $row[kbroi]<br />
		";
			}
			?>

Изкарва: Купувам 38

т.е. една категория и реално count-ва , че има 38новини ... , а не че за тази категория са присъщи 38 новини . Не мисля , че с тази заявка ще се получи .
 
Оправих се :

SELECT count(news.id) as num, kategorii.cid as id, kategorii.cime as name FROM newsLEFT JOIN kategorii ON news.kategoria = kategorii.cid
GROUP BY news.kategoria
 

Back
Горе