Slayer8 Geschrieben 16. Juli 2006 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
phadiax Geschrieben 17. Juli 2006 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.
Slayer8 Geschrieben 17. Juli 2006 Autor 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
phadiax Geschrieben 17. Juli 2006 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.
forTeesSake Geschrieben 24. Juli 2006 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"
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden