Highscore mit PHP und MySQL

hibbert

Mitglied
Hi,
auf meiner HP habe ich ein paar games und nun möchte ich auch noch eine Highscore-Liste hinzufügen. Die Punktzahl + der Username werden in einer MySQL Datenbank abgespeichert. Nun möchte ich, dass pro Seite immer 10 Daten stehen, nach Punkten abwärts geordnet (ist ja logisch, oder ;) ).

Ich habe bis jetzt nur das hier gefunden:
PHP:
$abfrage = "SELECT punkte FROM  highscore ORDER BY id DESC LIMIT 10";

Soweit ich das richtig verstanden habe, werden die Datensätze richtig sortiert und die ersten 10 werden ausgegeben. Doch da passiert überhaupt nichts !

Außerdem muss ja noch das mit den Seiten hinbekommen (oh man), als anfänger habe ich mir da ja ziehmlich viel vorgenommen, aber ich hoffe, dass ich hier Hilfe finden werde.

Ich bin für jede Hilfer erstmal dankbar, vielleicht gibt es ja irgendwo auch Tutorial zu diesem Thema, das mir weiterhelfen würde.

MfG Hibbert
 
Ein Sortieren nach den ID ist überhaupt nicht sinnvoll, da du dann ja nicht nach Punkten absteigend sortierst.
Dein Query sollte folgendermaßen aussehen
PHP:
$query = "SELECT punkte,name FROM highscore ORDER BY punkte DESC LIMIT 0,10";
,name weil du doch auch den Namen zu der Highscore ausgeben willst oder ?
Zum verteilen auf mehrere Seiten musst du dir mal die vielen Threads und Tutorials zum Thema Blätterfunktion oder Ausgabe auf mehrere Seiten verteilen angucken. Ist das gleiche Prinzip und lässt sich im Prinzip 1:1 übertragen.

Gruß
Tim
 
Vielen dank für die schnelle antwort, doch ich habe noch eine weitere Frage:

Wie kann ich das ganze jetzt auf der PHP seite geordnet in einer Tabelle ausgeben?
Die Tabelle soll so aussehen:

Platz | Punkte | Username | Profil |
...1... |...100......|.......xyz........|......view...|
...2... |....99.......|........abc......|......view...|
...usw...

Wenn der User sich jetzt die Highscore liste anguckt, soll er den Platz, die Punkte, den Usernamen sehen. zusätzlich soll noch ein link zum Profil desjenigen hinzugefügt werden.

da es ja immer 10 Plätze sind (ich glaube ich lasse die Blätterfunktion lieber weg), die auf einer Seite angezeigt werden, kann ich ja die Tabelle schon vorfertigen, doch wie kann ich jetzt die entsprechenden Daten dort eintragen?

Ich hoffe, das man mich jetzt noch verstanden hat (was ich möchte), wenn nicht einfach nochmal nachfragen, ich stelle doch auch die ganze zeit fragen ;)

also, vielen Danke.

MfG Hibbert
 
PHP:
echo "
<table>
  <tr>
    <td>Rang</td>
    <td>Punkte</td>
    <td>Name</td>
    <td>Profil</td>
  </tr>";
$query = "SELECT id,punkte,name FROM highscore ORDER BY punkte DESC LIMIT 0,10";
$rang = 0;
while ($row = mysql_fetch_array($query)) {
  $rang++;
  echo "
  <tr>
    <td>".$rang."</td>
    <td>".$row['punkte']."</td>
    <td>".$row['name']."</td>
    <td><a href=\"profil.php?id=".$row['id']."\">Profil</a></td>
  </tr>";
}
echo "</table>";

Reicht das? :)
Ronin
 
ja, es sieht ordentlich aus, doch leider tritt ein Fehler auf, sodass nur die Überschriften angezeit werden :(

Hier ist der Fehler bzw. die Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

was hat das zu bedeuten

hibbert
 
Das steht doch da schon. Dass du der Funktion mysql_fetch_array keinen gültigen result-Handler übergeben hast. Also wird irgendwas mit dem MySQL Query nicht so ganz in Ordnung sein würde ich mal vermuten.
 
Original geschrieben von Tim Comanns
Das steht doch da schon. Dass du der Funktion mysql_fetch_array keinen gültigen result-Handler übergeben hast. Also wird irgendwas mit dem MySQL Query nicht so ganz in Ordnung sein würde ich mal vermuten.

ok ok, nun bitte mal langsam, da komme ich nicht mit. :-(

Was ist:
1. der/die/das/? result-Handler
2. mit dem Query nicht in Ordnung

ich verstehe noch nicht so viel davon, ich habe erst vor kurem damit nagefanfen.

Also, kann mir das bitte noch mal wer erklären?:-(
 
Es geht darum:
PHP:
$query = "SELECT id,punkte,name FROM highscore ORDER BY punkte DESC LIMIT 0,10";

1) Gibts die abgefragten Variablen?
1a) id existent
1b) punkte existent
1c) name existent

2) Heißt die Tabelle highscore?

das sind die fragen ... kläre das!
 
ronin hat gesagt.:
1) Gibts die abgefragten Variablen?
--> Ja, die Variabeln existieren in der Datenbank

ronin hat gesagt.:
--> Ja, id existiert ebenfalls in der Datenbank

ronin hat gesagt.:
1b) punkte existent
--> Ja, punkte existiert ebenfalls in der Datenbank (tabelle Highscore)

ronin hat gesagt.:
1c) name existent
--> Ja,...

ronin hat gesagt.:
2) Heißt die Tabelle highscore?
--> Nein, die Dabelle hieß highscorebush. Das habe ich im script ebenfalls geändert. als das auch net funzte, habe ich die tebelle higscore genannt (im script und in der Datenbank)

ronin hat gesagt.:
das sind die fragen ... kläre das!
--> habe ich gemacht, doch es tritt noch immer der Fehler auf.

Ich habe auch vorher eine Verbindung zu miner Datenbank hergestellt:
PHP:
mysql_connect("localhost","Benutzername","**********");
mysql_select_db("Datenbankname");

bei den namen bzw. variabeln kann ich mich nicht vertippt haben, denn ich habe die namen bzw. variabeln per [Strg]+C und [Strg]+v kopiert und eingefügt, es waren bzw. sind keine leerzeichen zwischen den einzelnenn buchstaben bzw. vor oder am ende des namen bzw. der Variabel.

ich weiß ja auch nicht, was ich falsch gemacht habe?

hibbert
 

Neue Beiträge

Zurück