WinFuture-Forum.de: [php] Aktivste Member Mit Deren Beitragszahl Herausfinden - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

[php] Aktivste Member Mit Deren Beitragszahl Herausfinden


#1 Mitglied ist offline   phillymarx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 677
  • Beigetreten: 10. September 03
  • Reputation: 0
  • Wohnort:Barsinghausen

geschrieben 19. April 2006 - 17:12

Hi!
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 <_<
0

Anzeige



#2 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 19. April 2006 - 17:27

Beiträge? Von eine Forum? Welches Forum benutzt du den? <_<

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

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

#3 Mitglied ist offline   phillymarx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 677
  • Beigetreten: 10. September 03
  • Reputation: 0
  • Wohnort:Barsinghausen

geschrieben 19. April 2006 - 17:31

Beitrag anzeigenZitat (keny: 19.04.2006, 18:27)

Beiträge? Von eine Forum? Welches Forum benutzt du den? <_<

Edit:

Hast du schonmal in dein MySQL nachgeschaut? Müsste eigentlich leicht zu finde sein.

Nein, Beiträge auf meiner Seite. Kein Forum.
0

#4 _rjchio_

  • Gruppe: Gäste

geschrieben 19. April 2006 - 18:45

Beitrag anzeigenZitat (phillymarx: 19.04.2006, 18:31)

Nein, Beiträge auf meiner Seite. Kein Forum.
Ist es eine reine HTML-Tabelle oder steckt dahinter ein PHP-Script? <_<

MfG rjchio
0

#5 Mitglied ist offline   phillymarx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 677
  • Beigetreten: 10. September 03
  • Reputation: 0
  • Wohnort:Barsinghausen

geschrieben 20. April 2006 - 06:18

Es steckt eine MySQL-Tabelle dahinter, die mit PHP ausgelesen wird. Peinlich, dass ich das nicht geschrieben habe :P

Mir geht es darum, mit PHP und MySQL eine Lösung zu oben genanntem Problem zu finden.
0

#6 Mitglied ist offline   hasch 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.790
  • Beigetreten: 28. Januar 04
  • Reputation: 0
  • Wohnort:Localhost
  • Interessen:Ach so viele ...

geschrieben 20. April 2006 - 07:38

 
mysql_query("SELECT username, posts FROM tabelle ORDER BY posts DESC LIMIT 1");


:P
0

#7 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 20. April 2006 - 08:17

phillymax, ohne dein datenbankdesign zu kennen, kann man da gar nix sagen.
I'm mó. mo's good twin.
0

#8 Mitglied ist offline   hasch 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.790
  • Beigetreten: 28. Januar 04
  • Reputation: 0
  • Wohnort:Localhost
  • Interessen:Ach so viele ...

geschrieben 20. April 2006 - 09:17

Beitrag anzeigenZitat (mo: 20.04.2006, 09:17)

phillymax, ohne dein datenbankdesign zu kennen, kann man da gar nix sagen.

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...
0

#9 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 20. April 2006 - 10:49

hasch, du weist ja nichtmal, ob die beitragszahl überhaupt gespeichert wird. wenn nein, müssen die beiträge aufsummiert werden und das ggf. über mehrere tabellen.
I'm mó. mo's good twin.
0

#10 _rjchio_

  • Gruppe: Gäste

geschrieben 20. April 2006 - 13:04

@phillymarx
Bevor wir dir weiterhlfen können, brauchen wir Infos... :P
Datenbank-Struktur usw...

MfG rjchio
0

#11 Mitglied ist offline   phillymarx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 677
  • Beigetreten: 10. September 03
  • Reputation: 0
  • Wohnort:Barsinghausen

geschrieben 20. April 2006 - 15:51

Die Tabelle sieht -aufs wesentliche komprimiert- so aus:

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.
0

#12 _rjchio_

  • Gruppe: Gäste

geschrieben 20. April 2006 - 16:11

Dazu gibt es mehrere Möglichkeiten:
- 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
0

#13 _rjchio_

  • Gruppe: Gäste

geschrieben 20. April 2006 - 17:28

Hier das Script: :(
<?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

0

#14 Mitglied ist offline   phillymarx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 677
  • Beigetreten: 10. September 03
  • Reputation: 0
  • Wohnort:Barsinghausen

geschrieben 20. April 2006 - 18:33

Jupp, das triffts ganz gut.
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?
0

#15 _rjchio_

  • Gruppe: Gäste

geschrieben 20. April 2006 - 18:39

Beitrag anzeigenZitat (phillymarx: 20.04.2006, 19:33)

Jupp, das triffts ganz gut.
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?
Ich denke nicht, du müsstest ja folgendes in eine Abfrage packen:
- 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
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0