Hallo zusammen,
ich habe ein Skript, dass Einträge für eine Highscoreliste in eine Datenbank schreibt.
Darüberhinaus kommt ein Meldetext, der dann aussagt, das man sich z.b. im Moment auf Platz 5. befindet. Die Platzierung liest er anhand der Highscoreliste aus. Je nach Punktezahl belegt man in der Highscore Platz 1 bis 10.
Irgenwie scheint da noch ein Fehler drin zu sein. Kann aber leider nicht rausfinden, woran es liegt. Wahrscheinlich in erster Linie weil ich nicht der PHP Experte bin ;-).
Grundsätzlich ist es so, dass die Einträge in die Datenbank geschrieben werden. Erst beim Meldetext taucht der Fehler auf. Er liest nicht den Platz aus, den ich gerade belege sondernt wirft aus, wieviele Einträge gerade drin sind. Z.B. wenn es 20 Einträge gibt, sagt der Meldetext "Sie sind gerade auf Platz 21". Wobei ich nach Punkten auf Platz 5 sein sollte.
Ausserdem hab ich da noch das Problem, dass wenn ich meinen Nick für die Highscore eintragen möchte und im Namen ein Umlaut oder Sonderzeichen auftaucht, wird nichts ausgewiesen.
Wäre super wenn sich mal einer das Skript anschauen könnte. Villeicht kann mir da ja einer helfen...
Vielen Dank im voraus...
Gruß
R.Carlos
ich habe ein Skript, dass Einträge für eine Highscoreliste in eine Datenbank schreibt.
Darüberhinaus kommt ein Meldetext, der dann aussagt, das man sich z.b. im Moment auf Platz 5. befindet. Die Platzierung liest er anhand der Highscoreliste aus. Je nach Punktezahl belegt man in der Highscore Platz 1 bis 10.
Irgenwie scheint da noch ein Fehler drin zu sein. Kann aber leider nicht rausfinden, woran es liegt. Wahrscheinlich in erster Linie weil ich nicht der PHP Experte bin ;-).
Grundsätzlich ist es so, dass die Einträge in die Datenbank geschrieben werden. Erst beim Meldetext taucht der Fehler auf. Er liest nicht den Platz aus, den ich gerade belege sondernt wirft aus, wieviele Einträge gerade drin sind. Z.B. wenn es 20 Einträge gibt, sagt der Meldetext "Sie sind gerade auf Platz 21". Wobei ich nach Punkten auf Platz 5 sein sollte.
Ausserdem hab ich da noch das Problem, dass wenn ich meinen Nick für die Highscore eintragen möchte und im Namen ein Umlaut oder Sonderzeichen auftaucht, wird nichts ausgewiesen.
Wäre super wenn sich mal einer das Skript anschauen könnte. Villeicht kann mir da ja einer helfen...
Vielen Dank im voraus...
Gruß
R.Carlos
PHP-Code:
<?php
$monat = date ("m") ;
$tag = date ("d") ;
$jahr = date ("y");
$eingetragen = $tag.".".$monat.".".$jahr;
include("connection.inc.php");
$db = "xxxxxxxx";
@mysql_select_db ($db) or die ("Kann Datenbank nicht finden");
if ($_GET ['points'] > 0){
$sql = "INSERT INTO runner (punkte, nick, mailaddi, datum, geschlecht) ";
$sql .= "VALUES";
$sql .= sprintf ("('%s', '%s', '%s', '%s', '%s')" , mysql_real_escape_string ($_GET ['points'])
, mysql_real_escape_string (urldecode ($_GET ['nickn']))
, mysql_real_escape_string ($_GET ['mailaddi'])
, mysql_real_escape_string ($eingetragen)
, mysql_real_escape_string ($_GET ['geschlecht'])
);
$result = mysql_query($sql, $conn);
if ($result) {
$number = mysql_insert_id();
} else {
echo mysql_error($conn);
}
}
$strQuery = "SELECT punkte, nick, geschlecht FROM runner order by punkte DESC LIMIT 0, 10 ";
$result = mysql_query($strQuery, $conn);
while($row = mysql_fetch_array($result)) {
for($i=0; $i < mysql_num_fields($result); $i++) {
$ranklist = $ranklist."$row[$i]"."*";
}
$ranklist = $ranklist."#";
}
// fragt PLATZ AB
@mysql_select_db ($db) or die ("Kann Datenbank nicht finden");
$strQuery = "SELECT * FROM runner WHERE punkte > '$points'";
$result = mysql_query($strQuery, $conn);
while($row = mysql_fetch_array($result)) {
$deinplatz = $deinplatz + 1;
}
$deinplatz = $deinplatz + 1;
printf ("&ranklist=%s&deinplatz=%s&data=eof&" , stripslashes (htmlentities ($ranklist))
, stripslashes (htmlentities ($deinplatz))
);
?>
Kommentar