Zählen auf Umwege oder Eine Toplist

Eiszwerg

Erfahrenes Mitglied
PHP:
include ("var.php");
$dbanfrage = "SELECT * from $table WHERE Aktiv='YES' order by id DESC";
$result = mysql_db_query ($db, $dbanfrage, $dbverbindung);
echo"<table>";
echo"<tr align='center'><td><b> -= Nickname =- </b></td><td><b> -= Vorname =-  </b></td><td><b> -= Nachname =- </b></td><td><b> -= Eintr&auml;ge =- </b></td></tr>";
while ($Ausgabe = mysql_fetch_array ($result))
{
echo"<tr align='center'>
<td><a href='home.php?seite=ialle&usernickname=$Ausgabe[Nickname]'>$Ausgabe[Nickname]</a> </td>
<td>$Ausgabe[Vorname]</td>
<td>$Ausgabe[Nachname]</td>";
include ("var.php");
$dbverbindung2 = mysql_connect ('localhost', $user, $pw);
$Datenbank2=$table1 . $Ausgabe[Nickname];
$dbanfrage2 = "SELECT * from $Datenbank2";
$resultat = mysql_db_query ($db, $dbanfrage2, $dbverbindung2);
$entries=mysql_num_rows($resultat); 
echo"<td>$entries</td></tr>";
}
echo"</table>";
mysql_close();

Dieser Code listet alle Mitglieder meiner Community auf und zeigt wieviele Einträge diese geschrieben haben.
VIEW: http://www.my-zwerg.de/tagebuch/home.php?seite=userlist
Ich möchte allerdings hinter den Nick mit den meisten Einträgen eine Grafik (TOP o.ä.) setzen.
Wie kann ich das am klügsten anstellen?
Bin für jeden Tip dankbar.
 
2 Möglichkeiten

1) Du nimmst den User mit den meisten Posts als Relevanz und setzt seinen Balken auf 100%. Der Rest entsprechend des prozentualen Anteils der Posts des Top-Users.


2) Du nimmst alle Posts als 100% und die Posts der einzelnen User als prozentualen Anteil und entsprechend dann auch die Grafiken.


Zweiteres halte ich für sinnvoller ... ;)
 
Hmmm...
Entweder verstehe ich Deine Antwort nicht oder Du hast das Problem nicht richtig gesehen.
Ich will nur hinter dem User mit den meisten Einträgen eine Grafik setzen.
 
Tut mir wirklich leid, aber Dein Code ist total verkorkst.

1: Warum connectest Du dich in jedem Schleifendurchlauf nochmal mit der Datenbank?

2: Warum wird in jedem Schleifendurchlauf die Datei var.php includet, obwohl dies bereits in der ersten Zeile passiert?

3: Es ist jenseits des Konzeptes einer relationalen Datenbank und der dritten Normalform, für jeden Nutzer eine eigene Tabelle zu erstellen Je schlechter die Tabellenstruktur, um so umständlicher ist die Programmierung.

Mein Tipp:
Erstelle eine Benutzertabelle mit allen Benutzerdaten. Weise dabei jedem Benutzer eine eindeutige ID zu.
Erstelle weiterhin eine Tabelle für die Beiträge und halte darin die Beitragsdaten, sowie die ID des jeweiligen Benutzers fest.

~snuu~
 
Ich weiss ich weiss. Die 3 Normalisierungs-Regeln :D
Leider hat sich das Alles so ergeben. Ich muss mal schauen, ob ich die Einträge irgendwie zusammen in eine bekomme. Aber bis dahin hab ich vor das so zu regeln. Mich interessiert einfach, ob es so auch möglich ist, mein Vorhaben durchzusetzen.
 
Alles geht irgendwie!

Wenn Du's schon umständlich machen willst, dann klapper vorher alle Beitrags-Tabellen ab (Select count(*) as anzahl from tabelle_des_nutzers) und ermittel den Nutzer mit den meisten einträgen. Merk Dir den Nutzer und prüfe in der Schleife, die Dir die Anzahl der Nutzerbeiträge holt, ob gerade der Nutzer mit den meisten Beiträgen abgearbeitet wird. Wenn ja, setz das Bild dahinter :)

Wie gesagt, ich find's zu umständlich. Strukturiere Deine Datenbank um optimiere Deinen Code. Du stolperst sonst immer wieder darüber.

mfg, snuu
 
Hey, danke!
Wieder was gelernt. Den mit Count kannte ich noch nicht.
Natürlich wird das irgendwie umstrukturiert. Ich habe ja selber schon gemerkt, dass das nicht das Gelbe vom Ei ist. Allerdings ist es so, das die momentanen Beta-Tester sehr an den Einträgen hängen. Und ich muss mir was einfallen lassen, wie ich die alle zusammenführe, ohne Verluste zu beklagen. Werde da wohl mal ein Script für schreiben müssen.

Also erstmal! Habe jetzt Besuch und der geht vor ;)
 
Zurück