[php] Aktivste Member Mit Deren Beitragszahl Herausfinden
#1
geschrieben 19. April 2006 - 17:12
Ich will für meine Seite eine kleine Statistik schreiben und brauche dafür eure Hilfe.
Ich will aus einer Tabelle, in der Beiträge von Usern stehen, die Top20 der aktivsten User (=die Namen der zwanzig User mit den meisten Beiträgen) mit deren Anzahl der Beiträge auslesen.
Nur leider weiß ich nicht wie.
Ich bin dankbar für jede Hilfe
Anzeige
#2
geschrieben 19. April 2006 - 17:27
Edit:
Hast du schonmal in dein MySQL nachgeschaut? Müsste eigentlich leicht zu finde sein.
Dieser Beitrag wurde von keny bearbeitet: 19. April 2006 - 17:31
Zitat
Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
#3
geschrieben 19. April 2006 - 17:31
#4 _rjchio_
geschrieben 19. April 2006 - 18:45
#5
geschrieben 20. April 2006 - 06:18
Mir geht es darum, mit PHP und MySQL eine Lösung zu oben genanntem Problem zu finden.
#6
geschrieben 20. April 2006 - 07:38
mysql_query("SELECT username, posts FROM tabelle ORDER BY posts DESC LIMIT 1");
#7
geschrieben 20. April 2006 - 08:17
#8
geschrieben 20. April 2006 - 09:17
Haste natürlich recht, aber sofern er die Posts in der gleichen Tabelle, wie alle anderen Userdaten speichert, kann er ja die einfache Query-Abfrage nutzen... und dementsprechend an die Spaltennamen anpassen...
#9
geschrieben 20. April 2006 - 10:49
#10 _rjchio_
geschrieben 20. April 2006 - 13:04
Bevor wir dir weiterhlfen können, brauchen wir Infos...
Datenbank-Struktur usw...
MfG rjchio
#11
geschrieben 20. April 2006 - 15:51
id (Eindeutige ID für jeden Eintrag)
artikelid (beschreibt unter welchem Artikel der Eintrag angezeigt werden soll)
name (erklärt sich selbst)
eintrag (auch das erklärt sich selbst)
Es wird also nirgends die Menge der Einträge gespeichert. Nun möchte ich aus dieser Struktur die 20 am meisten vorkommenden Namen auslesen (höchstes Vorkommen=die meisten Einträge) und für jeden User dessen Menge der Einträge.
#12 _rjchio_
geschrieben 20. April 2006 - 16:11
- Du machst eine weitere Tabelle, wo bei jedem Forum-Eintrag beim entsprechenden Name aufaddiert wird. Danach musst du noch die Namen der 20 höchsten herauslesen...
- Die 2. Möglichkeit, die mir einfällt wäre, dass man mit einem PHP-Script alle Namen in ein Array liest und danach zählt. Das zählen würde ich mit einer foreach-Schleife machen!
Wenn du die 2. Methode gut findest, musst du dich nur melden und ich schreib dir das Grundscript ;-)
MfG rjchio
#13 _rjchio_
geschrieben 20. April 2006 - 17:28
<?php $mysql['server'] = ""; $mysql['user'] = ""; $mysql['password'] = ""; $mysql['database'] = ""; $mysql['table'] = ""; mysql_connect($mysql['server'], $mysql['user'], $mysql['password']); mysql_select_db($mysql['database']); $result = mysql_query("SELECT name FROM ".$mysql['table']); while ($row = mysql_fetch_array($result)) { $name[$row['name']]++; } arsort($name); foreach ($name as $key => $value) { $i++; if ($i <= 20) { $table .= "<tr><td>".$i.".</td><td>".$key."</td><td>".$value."</td></tr>\n"; } else { break; } } echo "<table>\n<tr><th>Platz</th><th>Name</th><th>Beiträge</th></tr>\n".$table."</table>\n"; ?>
MfG rjchio
Dieser Beitrag wurde von rjchio bearbeitet: 20. April 2006 - 17:29
#14
geschrieben 20. April 2006 - 18:33
Danke dafür!
Gibt es dennoch einen MySQL-Befehl, der das gleiche bewirkt, aber die Datenbank durch das selektive Auswählen entlastet und letztendlich PHP-Code spart?
#15 _rjchio_
geschrieben 20. April 2006 - 18:39
Zitat (phillymarx: 20.04.2006, 19:33)
Danke dafür!
Gibt es dennoch einen MySQL-Befehl, der das gleiche bewirkt, aber die Datenbank durch das selektive Auswählen entlastet und letztendlich PHP-Code spart?
- Einträge der User zählen
- Namen sortieren nach Einträgen
- zurückgeben von Namen und Anzahl Beiträgen
- und nur die ersten 20
Geht meiner Meinung nicht
MfG rjchio