ich habe eine Click-Counter eingebaut und möchte nun die Summe der Clicks anzeigen.
Die DB-Tabelle heisst ClickTable, die Link-IDs werden im Feld click_id gespeichert und die Anzahl der Clicks wird in click_count gespeichert.
SELECT sum(click_count) as Clicks from ClickTable;
würde da reichen.
"Clicks" käme dann zurück und enthielte die Anzahl Datensätze, hier also die Anzahl der Klicks.
Deine Variante wäre zwar auch korrekt, ist aber langsamer (auch wenn man das bei kleineren Tabellen/Datenbanken kaum merken sollte), da die Berechnung von PHP, also dem Server und nicht bereits in der ohnehin hierfür schnelleren Datenbank durchgeführt würde...
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Andere, erweiterte Frage: wie bekomme ich auf gleicher Weise die Summe der Posts in einem Forum raus?
Habe schon versucht die Funktion für die Board-Statistiken ausfindig zu machen, habe aber nichts gefunden.
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Zu finden in der index.php (vanilla phpBB) und spricht wohl für sich
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
SELECT count(post_id) as total_posts FROM phpbb_posts;
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Nein, die Summe wäre dann schon in total_posts enthalten!
Die Abfrage ist dann in ein PHP-Script erst einzubauen.
Das Original findest Du in der includes/functions.php.
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
$sql = "'SELECT count(post_id) as total_posts FROM ".$row[name]."_phpbb_posts";
$result = mysql_query($sql);
if ($result)
{
$row = mysql_fetch_array($result);
mysql_freeresult($result);
$total_posts = $row['total_posts'];
}
else
{
die('Could not fetch total posts');
}
Tippselfehler eingeschlossen
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
SELECT sum(click_count) as Clicks from ClickTable;
würde da reichen.
"Clicks" käme dann zurück und enthielte die Anzahl Datensätze, hier also die Anzahl der Klicks.
Deine Variante wäre zwar auch korrekt, ist aber langsamer (auch wenn man das bei kleineren Tabellen/Datenbanken kaum merken sollte), da die Berechnung von PHP, also dem Server und nicht bereits in der ohnehin hierfür schnelleren Datenbank durchgeführt würde...[/quote]
Sorry, ich darauf nochmal zurückkommen. Wie bekomme ich die Clicks angezeigt?
Das hier kann ja nicht korrekt sein:
Ich hab in meinem letzten Post doch schon den kompletten Code gepostet
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Ansonsten kann ich so beim schnellen Durchblick nichts weiteres falsches erkennen...
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Perfekt! Klappt gut! Danke!
Und jetzt: wie könnte ich da noch eine Spalte reinbringen in der ich sehen kann, wieviele Posts in den letzten 7 Tagen und in den letzten 30 Tagen gemacht wurden?
Das muss ja so ähnlich sein wie
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
$sql4 = "SELECT count(post_id) as posts7 FROM ".$row[name]."_phpbb_posts WHERE post_time <= " . time() - 7 * 86400;
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
1. Gibt es in der besagten Tabelle das Feld "post_time" überhaupt?
2. Klappt es, wenn Du " . time() - 7 * 86400" durch $timespan ersetzt und vor der Abfrage
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Karsten Ude
-={ Das Mädchen für alles }=- Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Ah stopp!
Neeeee, irgendetwas ist komisch!
Es werden meist mehr new posts in 7 Tagen angezeigt, als in 30, und das kann ja nicht stimmen! Der Wert kann ja höchstens gleich sein!
/H
Zuletzt geändert von Holger am Do 26.Apr, 2007 08:54, insgesamt 1-mal geändert.