[gelöst] Gesamtanzahl der Kommentare auslesen

am 29.03.2010 - 23:39 Uhr in
Hallo,
ich habe schon in der Datenbank fleißig gesucht. Ich würde gerne die Anzahl aller Kommentare mit der Anzahl der Nodes addieren und dann ausgeben lassen. Ich finde aber keine Hinterlegung der Gesamtanzahl der Kommentare.
Kann es sein, daß es nicht hinterlegt ist? *grübel*
Gruß,
Kirsten
- Anmelden oder Registrieren um Kommentare zu schreiben
uhm ... SELECT count(cid)
am 29.03.2010 - 23:53 Uhr
uhm ...
SELECT count(cid) FROM comments;
SELECT count(nid) FROM nodes;
?
Bin mir nicht ganz sicher,
am 30.03.2010 - 07:36 Uhr
Bin mir nicht ganz sicher, aber mit Views kann man glaub ich auch Kommentare selektieren. Dann würde sich Views Calc anbieten. Mit Insert View ließe sich das dann auch überall einbauen.
Zeigt es mir einfach nicht an....
am 30.03.2010 - 11:30 Uhr
if (variable_get('visitors_published_nodes', 1)) {
$list_items[] = t('Veröffentlichte Beiträge: %nodes', array('%nodes' => db_result(db_query("SELECT COUNT(*) FROM {node} WHERE status = 1")+("SELECT COUNT(*) FROM {comments} WHERE status = 0"))));
}
Ich habe auch schon andere '+' Varianten ausprobiert, aber er zeigt mir gar kein Ergebnis an ....
Gruß,
Kirsten
Solange besser möglich ist, ist gut nicht genug.
http://www.net-explorer.org
Kirsten1965 schrieb if
am 30.03.2010 - 13:14 Uhr
if (variable_get('visitors_published_nodes', 1)) {
$list_items[] = t('Veröffentlichte Beiträge: %nodes', array('%nodes' => db_result(db_query("SELECT COUNT(*) FROM {node} WHERE status = 1")+("SELECT COUNT(*) FROM {comments} WHERE status = 0"))));
}
Ich habe auch schon andere '+' Varianten ausprobiert, aber er zeigt mir gar kein Ergebnis an ....
Ein Fehler ist zumindest mal COUNT(*) zu verwenden. Mit * sagst du "alle Spalten". Du willst aber nur die Spalte aufsummieren, die den Primärschlüssel der entsprechenden Tabelle enthält ("DESCRIBE node" würde z.B. "nid" als Primärschlüssel für die "node" Tabelle ausweisen). Desweiteren kannst du definitiv nicht zwei SELECT queries mithilfe eines "+" Operators in der db_query() function verknüpfen. Du musst entweder zwei unabhängige Datenbankabfragen durchführen und die Ergebnisse abschliesend addieren oder beide Tabellen zu einer temporären zusammenfassen und dann die Zeilen zählen.
Zwei unabhängige SELECTs dürften einfach und vermutlich auch performanter sein (bin grad auf dem Sprung und kanns daher nicht ausprobieren).
So funktioniert's
am 03.04.2010 - 16:59 Uhr
Hier die Lösung:
if (variable_get('visitors_published_nodes', 1)) {
$list_items[] = t('Published Nodes: %nodes', array('%nodes' => db_result(db_query("SELECT (SELECT COUNT(*) FROM {node} WHERE `status`=1)+(SELECT COUNT(*) FROM {comments} WHERE `status`=0) AS `_count_`"))));
}
Gruß,
Kirsten
Solange besser möglich ist, ist gut nicht genug.
http://www.net-explorer.org