MySQL COUNT.. brauche hilfe

hallo.com!
habe ein problem, dessen ursache ich nicht kenne… -.-
schaut selbst:

$newsid = 1

...

$insg = mysql_query("SELECT COUNT(*) FROM newscomments WHERE id = $newsid");
$row = mysql_fetch_array($insg);
echo $row[0];

$row[0] gibt immer 1 aus, obwohl inzwischen bei newscomments 4 einträge mit “newsid = 1” sind.

es müsste dort 4 stehen.

hilfe :<

so funzt ein Count nicht…

$sql = "SELECT id FROM newscomments WHERE id = $newsid";
$sql = mysql_query($sql);
while(mysql_fetch_array($insg))
   $count++;

echo $count;

michi: Sicher, so geht es, aber das ist ineffizient wie sonstnochwas. MySQL hat eine native COUNT()-Funktion.

@semikolon: Ich sehe auch nicht auf den ersten Blick, was bei dir falsch ist. Lies dir mal little-idiot durch, vielleicht hilft das ja…

[code]
$sql = “SELECT id FROM newscomments WHERE id = $newsid”;
$sql = mysql_query($sql);
$count = 0;
while(mysql_fetch_array($sql))
$count++;

echo $count;[/code]
gibt bei mir immernoch 1 aus…

$newsid = 1 $insg = mysql_query("SELECT * FROM newscomments WHERE id = $newsid"); $row = mysql_num_rows($insg); echo $row;

Das zählt die rows… Also alle Zeilen. In diesem fall 4

auch das gibt bei mir 1 aus…
der tabellenname und alles ist 100% richtig buchstabiert und es sind 4 einträge!

auch der guide hat mir nicht weitergeholfen :frowning:

$newsid = 1 $insg = mysql_query("SELECT * FROM newscomments WHERE id = $newsid"); $row = mysql_num_rows($insg); echo $row;

Wo ich grad newsid sehe
Meinst nicht eher CATID oder einfach

$insg = mysql_query("SELECT * FROM newscomments"); $row = mysql_num_rows($insg); echo $row;

keine ahnung, was du mit catid meinst…

es ist so, dass je nachdem, bei welchem news ein kommentar geschrieben wird, der grundsätzlich in die “newscomments” tabelle gelegt wird, aber mit dem zusatz "newsid = [id von den news selbst]…

Moin,

also du setzt die Newsid = 1 und ich nehme an du möchtest wissen, wieviele Einträge in der newscomments-Tabelle stehen. Ich gehe davon aus, dass jedem Eintrag eine eindeutige ID zugewiesen wird (ich nenne sie mal commentid) und es eine ID für die News gibt als Bezug (wird bei dir schon ID genannt). Falls das nicht so stimmen sollte, solltest du mich mal korrigieren bzw. mir/den anderen die Struktur der Tabelle zeigen, da auch dort schon der Fehler stecken könnte. (nämlich wenn es nur eine ID gibt)

Meinen Gedankenstrang folgend, würde ich es so schreiben:

$insg = mysql_query("SELECT COUNT(commentid) AS anzahl FROM newscomments WHERE id = $newsid");
while($row = mysql_fetch_object($insg))
{ echo $row->anzahl; }

2 IDs sind auf jeden Fall von nöten - ansonsten sollte der Code oben eigentlich funktionieren (wobei ich mir grad nicht sicher bin, ob man auch statt $row->anzahl nur $anzahl schreiben kann, aber ich glaube $row->anzahl muss schon da stehen)

Wenn ich das so lese gibt es 1x ID für den Comment und 1x die newsid - dann musst du logischerweise mit WHERE newsid = $newsid arbeiten.

MfG
myPages