Zdarec! Potřebuji pomoc na hlavní stráne chci vypisovat počet komentářům k článkům. Komentáře mám v jiné tabulce a neutším jak to zapsat unikátně ke každýmu článku přes MySql_num_rows
$num = mysql_fetch_array(mysql_query("select count(*) as pocet from komentare where id_cl = $id"))
id_cl ... je identicke cislo clanku ( a neco takoveho bys mel mit v tabulce komentare, abys vedel jake komentare, patri k jakemu clanku)
Ne takhle to asi nepujde viz níže
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /3w/wz.cz/m/muty/home.php on line 13
nebo nevim příkaz k tomu počtu
Ty jsi asi 23k špatně pochopil.
1) To varování je způsobeno chybou v SQL dotazu, ten je v principu správně, ale místo "komentare" tam musíš dát jméno té tabulky s komentáři a místo "id_cl" jméno sloupečku, který nese informaci, ke kterému článku se komentář vztahuje.
2) mysql_num_rows() je tu k ničemu. K získání počtu použij:
$row = mysql_fetch_array($num, MYSQL_ASSOC);
$pocet_komentaru=$row['pocet'];
Sorry mě to myslí nějak pomalu
(U tabulky se pojí záznamy k článku podle prispevku(označuje číslo článku)
create table komentare(
id int(5) not null auto_increment,
prispevek int(5),
nick varchar(30),
email varchar(30),
komentar text,
datum varchar(10),
primary key(id));
a já tedka nevím jak mám modifikovat ten tu $num
Kod vypisuju takto
<center>
<h1>Vítej na webu muty.wz.cz!Toto je oficiální stránka jednoho 14-letého, který se zajímá o PC a techniku vůbec</h1><br>
<h2>Aktuální články<h2>
</center>
<?
include('config.php');
$vysledek = mysql_query(
"select * from clanky ",
$spojeni2);
//Počet komentářů
$num = mysql_fetch_array(mysql_query("select count(*) as pocet from komentare where prispevek = $clanek"));
$row = mysql_fetch_array($num, MYSQL_ASSOC);
$pocet_komentaru=$row['pocet'];
//Konec počtu komentářů
$pocet = mysql_Num_Rows($vysledek);
if ($pocet==0)
{
echo '<h2>Neexistuje žádný článek!</h2>';
}
else
while ($zaznam = mysql_fetch_array($vysledek) ):
echo "<p><a href='index.php?page=read&id=";
echo $zaznam["id"];
echo "'>";
?>
<b>
<?
echo $zaznam["nadpis"];
?>(<?
echo $zaznam["datum"];
?>)
</a>
</b><?
echo "<br> ";
echo "Autor: ";
echo $zaznam["autor"];
echo "<br>";
echo "Komentářů: ";
echo $pocet_komentaru;
echo "</p>";
echo "<hr>";
endwhile;
?>
Já jsem se špatně podíval. Přehlédl jsem, že 23k tam už mysql_fetch_array napsal. Ten počet pak teda získáš jako $num['pocet'].
Aha, ty to potřebuješ výpis článků a ke každému uvést počet komentářů.
Škoda, že tu není MySQL 4.1, ale půjde to takto:
//nacist pocty
$pocty=array();
$result = mysql_query("select prispevek, count(*) as pocet from group by prispevek;"); //radky budou obsahot id prispevku a pocet odpovidajicich komentaru
while ($row = mysql_fetch_array($num, MYSQL_ASSOC)) {
$pocty[$row['prispevek']]=$row['pocet'];
}
//vypis clanku
$vysledek = mysql_query("select * from clanky;");
while ($zaznam = mysql_fetch_array($num, MYSQL_ASSOC)) {
echo "<p><b><a href='index.php?page=read&id=";
echo $zaznam["id"];
echo '">';
echo $zaznam["nadpis"] . '(' . $zaznam["datum"] . ")";
echo "</a></b><br> ";
echo "Autor: ";
echo $zaznam["autor"];
echo "<br>";
echo "Komentářů: ";
echo intval($pocty['$zaznam["id"]']); //najit odpovajici zaznam v $pocty
echo "</p>";
echo "<hr>";
}
Nekontrolovano.
Presne tak jak rika Stillet