Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ergebnisse Meherer Summenzeilen ausgeben

Empfohlene Antworten

Veröffentlicht

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

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.

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

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.

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"

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.