Slayer8 Geschrieben 16. Juli 2006 Teilen Geschrieben 16. Juli 2006 Hallo, ich habe ein kurzes Skript, welches alle Inhalte einerbestimmten ID zusammen zählt und das für diverse Artikel. Bsp: Es gibt 3 Artikel: [Artikel1, Artikel2, Artikel3] Nun sollen die Hits aller Kommentare die zu Artikel X gehören gezählt werden. Hier der Pseudocode: // Solange es Artikel gibt wird jeweils pro Zeile die ID und der Name Zeile ausgelesen $result = mysql_query("SELECT aid,title FROM Artikel",$db); while ($Artikel = mysql_fetch_array($result)) { // die Kommentare zu dem Artikel werden in der DB gesucht und die Hits der einzelnen Kommentare sumiert $result2 = mysql_query("SELECT SUM(hits) FROM comments WHERE aid = $AlbumDaten[aid];",$db); $Hits = mysql_fetch_array($result2); // Ausgabe des Artikels und die Anzahl der Kommentare echo"<b>Artikel:</b> ".$Artikel[title]." - <b>Kommentare:</b> ".$Hits[hits]."<br>"; }; [/PHP] Klappt aber nicht, scheitert an der inneren Schleife. Eigentlich wird da ja auch direkt ein Befehl auf die DB abgelassen und nichts ausgelesen, wenn ich den wie oben beschrieben in eine/n Variable/Array schreiben will, scheitert es mit der Ausgabe. Hat jemand Tipps? ThX S8 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
phadiax Geschrieben 17. Juli 2006 Teilen Geschrieben 17. Juli 2006 Was für mich irgendwie keinen Sinn ergibt, ist folgender Abschnitt: // die Kommentare zu dem Artikel werden in der DB gesucht und die Hits der einzelnen Kommentare sumiert $result2 = mysql_query("SELECT SUM(hits) FROM comments WHERE aid = $AlbumDaten[aid];",$db); [/PHP] Ich glaube du willst an der Stelle $Artikel['aid'] ansprechen, alles andere macht hier keinen Sinn. Weiterhin kann ich mir nicht erklären, was du mit der "inneren Schleife" meinst, ich seh nur eine. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Slayer8 Geschrieben 17. Juli 2006 Autor Teilen Geschrieben 17. Juli 2006 Hallo, ja sorry sollte wirklich "$Artikel['aid']" heißen und mit inerer Schleife meine ich die SQL Abfrage in der Schleife. Es wird ja pro Datenzeile eine Abfrage gestartet, wieviele Hits es zu Kommentaren zu diesem Artikel gibt. Also: > Auswahl Artikel > Wieviel Kommentare gibt es zu diesem Artikel ThX S8 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
phadiax Geschrieben 17. Juli 2006 Teilen Geschrieben 17. Juli 2006 Du solltest mal zusehen, dass du deine Queries ordentlich schreibst. Das ist schrecklich: $result2 = mysql_query("SELECT SUM(hits) FROM comments WHERE aid = $AlbumDaten[aid];",$db); So funktioniert das schon besser: $result2 = mysql_query("SELECT SUM(hits) FROM comments WHERE aid = '".$Artikel['aid']."'",$db); Außerdem wirst du mit $Hits['hits'] nicht das Ergebnis von SUM bekommen. Schau dir das Array mal mit print_r an, dann siehst du, unter welchem Key das Ergebnis liegt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 24. Juli 2006 Teilen Geschrieben 24. Juli 2006 Du solltest mal zusehen, dass du deine Queries ordentlich schreibst. Das ist schrecklich: $result2 = mysql_query("SELECT SUM(hits) FROM comments WHERE aid = $AlbumDaten[aid];",$db); So funktioniert das schon besser: $result2 = mysql_query("SELECT SUM(hits) FROM comments WHERE aid = '".$Artikel['aid']."'",$db); Außerdem wirst du mit $Hits['hits'] nicht das Ergebnis von SUM bekommen. Schau dir das Array mal mit print_r an, dann siehst du, unter welchem Key das Ergebnis liegt. hmm ich denke mal eher ohne hockomma, denn aid ist doch wahrscheinlich vom typ integer. $result2 = mysql_query("SELECT SUM(hits) as hits FROM comments WHERE aid = ".$AlbumDaten['aid'], $db); und so kannste dann auch auf $line['hits'] (bzw. du machst glaube ich $Hits['hits'] ) zugreifen. es fehlte nur das "as hits" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.