26. maj 2005 - 00:26
Der er
17 kommentarer og 1 løsning
Antal Kommentar i MySQL databasen
Hejsa jeg har et lille Kommentar system til mit nyheds system Men jeg vil gerne have at brugeren kan se hvor mange Kommentar der skrevet Jeg har denne tabel: CREATE TABLE `comment` ( `id` int(11) NOT NULL auto_increment, `nyhedsid` int(11) NOT NULL default '0', `navn` varchar(20) NOT NULL default '', `email` varchar(30) NOT NULL default '', `www` varchar(50) NOT NULL default '', `kommentar` text NOT NULL, `dato` varchar(50) NOT NULL default '', PRIMARY KEY (`id`) ) Jeg har prøvet at bruge dette script: $result=mysql_query("select count(nyhedsid) as antal from comment"); $row=mysql_fetch_row($result); print $row[0]; Det tæller godt nok hvor mange beskeder der er i databasen men ikke for hver nyhed som jeg angiver med nyhedsid Håber nogen kan hjælpe mig M.v.H. Th1
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
For en given nyhed: SELECT COUNT(*) AS antal FROM comment WHERE nyhedsid = x For alle: SELECT nyhedsid, COUNT(*) AS antal FROM comment GROUP BY nyhedsid
Hejsa hmortensen det virker fint når jeg bruger SELECT COUNT(*) AS antal FROM comment WHERE nyhedsid = x og erstatter x med 1 men hvad hvis jeg nu har flere end 1 nyhed og gerne vil også tælle kommentarne for dem??
Der skulle du gerne kunne bruge den anden
hvis jeg bruger SELECT nyhedsid, COUNT(*) AS antal FROM comment GROUP BY nyhedsid så tæller den kun 1 kommentar pr nyhed selvom der er flere
Så må du buge den forkert, for den sætning virker.
hmm hvad mener du helt med "Så må du bruge den forkert, for den sætning virker." ?? Jeg bruger den her : SELECT nyhedsid, COUNT(*) AS antal FROM comment GROUP BY nyhedsid
Hvis ud har det her data: 1, 1, navn, email, www, En kommentar, dato 2, 1, navn, email, www, En kommentar, dato 3, 2, navn, email, www, En kommentar, dato 4, 1, navn, email, www, En kommentar, dato 5, 4, navn, email, www, En kommentar, dato Så vil den sætning give det her: 1, 3 2, 1 4, 1
ja men det gør den ikke :( :S
Det gør den hos mig. Kan du komme med noget kode ? Måske problemet ligger i den måde du bruger den på.
ja det kan self <? include "mysql.php"; $query = mysql_query("SELECT id, emne, dato, nyhed FROM news ORDER BY id DESC"); while ($newsrow = mysql_fetch_array($query)){ echo " <table> <tr> <td> <b>".$newsrow['emne']." - Dato: ".$newsrow['dato']."</b><br /> "; $text = htmlspecialchars($newsrow['nyhed']); $text = str_replace(":D", "<img src=\"smilie/icon_biggrin.gif\">", $text); $text = str_replace(":S", "<img src=\"smilie/icon_confused.gif\">", $text); $text = str_replace(":8", "<img src=\"smilie/icon_cool.gif\">", $text); $text = str_replace(":cr", "<img src=\"smilie/icon_cry.gif\">", $text); $text = str_replace(":¨", "<img src=\"smilie/icon_eek.gif\">", $text); $text = str_replace(":e", "<img src=\"smilie/icon_evil.gif\">", $text); $text = str_replace("!", "<img src=\"smilie/icon_exclaim.gif\">", $text); $text = str_replace(":i", "<img src=\"smilie/icon_idea.gif\">", $text); $text = str_replace(":l", "<img src=\"smilie/icon_lol.gif\">", $text); $text = str_replace(":[", "<img src=\"smilie/icon_mad.gif\">", $text); $text = str_replace(":|", "<img src=\"smilie/icon_neutral.gif\">", $text); $text = str_replace("?", "<img src=\"smilie/icon_question.gif\">", $text); $text = str_replace(":r", "<img src=\"smilie/icon_razz.gif\">", $text); $text = str_replace(":f", "<img src=\"smilie/icon_redface.gif\">", $text); $text = str_replace(":re", "<img src=\"smilie/icon_rolleyes.gif\">", $text); $text = str_replace(":(", "<img src=\"smilie/icon_sad.gif\">", $text); $text = str_replace(":)", "<img src=\"smilie/icon_smile.gif\">", $text); $text = str_replace(":O", "<img src=\"smilie/icon_surprised.gif\">", $text); $text = str_replace(":tw", "<img src=\"smilie/icon_twisted.gif\">", $text); $text = str_replace(";)", "<img src=\"smilie/icon_wink.gif\">", $text); $text = nl2br($text); echo $text; ?> <br> <br> _______________________________________________________________________ Her bruger jeg koden som du gav mig =) <a href="comment.php?id=<?=$newsrow[id];?>" target="Iframe">Comment(<? include "mysql.php"; $result=mysql_query("SELECT nyhedsid, COUNT(kommentar) AS antal FROM comment GROUP BY nyhedsid"); $row=mysql_fetch_row($result); print $row[0]; ?>)</a> _______________________________ Her slutter den kode som du gav mig <? echo " <td> </tr> </table> <br> <hr /> "; ?><? if($_GET["comment.php"] ) { mysql_query("SELECT * FROM news WHERE id = '$_GET[id]") or die (mysql_error()); } ?> <? } ?>
På den måde som du vil bruge den her, skal du bruge den anden sætning jeg skrev. Prøv at udskifte det her: $result=mysql_query("SELECT nyhedsid, COUNT(kommentar) AS antal FROM comment GROUP BY nyhedsid"); $row=mysql_fetch_row($result); print $row[0]; med: echo mysql_result(mysql_query("SELECT COUNT(*) FROM comment WHERE nyhedsid = ".$newsrows['id]), 0);
Mangler en ' $newsrows['id']
så udsriver den slet ikke hvor mange kommentar der er
ja det havde jeg set og den udskriver slet ikke hvor mange kommentar der er
Hov, der er også et S for meget. $newsrow['id']
mange tak nu virker det :D kan du ikke ligge et svar så du kan få dine point?? :)
takker for hjælpen og din tid =)
Vi tilbyder markedets bedste kurser inden for webudvikling