[PHP] Nicht alles eintragen

skatos

Erfahrenes Mitglied
Hi.
Ich habe mit hilfe vom Flashstar Highscore tutorial
Eine Highscoreliste in Flash [MX] erstellt und diese funktioniert auch recht gut...
Was ich jetzt bräuchte ist...
Wenn ein user schonmal Highscores eingetragen hat darf sich dieser nicht nochmal eintragen...
Sondern der Highscore muss ersetzt werden...
Allerdings nur wenn der jetzige Score höher ist als der bereits in der sql datenbank vorhandene...
Ich bin leider ein ziemlicher Php... Anfänger und muss das aber heute noch für meine Firma fertigbekommen..
Hier der code mit dem ich die daten in die SQL datenbank schreibe...
PHP:
<?php

require ("config.inc.php");

$db = mysql_connect($dbserver,$nutzer,$passwort);

mysql_db_query($dbname,"INSERT INTO $dbtab(uid,nick,zeit,score,level) VALUES ('$fuid','$fnick','$fzeit','$fscore','$flevel')");

$pruf = mysql_affected_rows();

// Datensatz angelegt (Ja/Nein)

if ($pruf > 0) 
	{
	echo 'eintrag=1';
	}
else
	{
	echo 'eintrag=0';
	}
mysql_close($db);
?>
Ich bräuchte nur eine funktion die abfragt ob der User schon vorhanden ist.. und wenn ja ob sein jetziger Score den er eintragen will höher ist als der alte..
wenn ja : Eintragen..
Wenn nein : Nicht eintragen...
Ich brauch auch keine Errormeldung falls der User bereits vorhanden ist und sein Score höher ist...
Einfach nicht Eintragen...
Pls help !
thx
tim
 
Zuletzt bearbeitet:
Ne HighScore Liste für Ne Firma? Wo "arbeitest" du denn?
Naja, ich würde von meinen Angestellten etwas mehr erwarten als dass sie an einer einfachen if() Funktion scheitern.
Naja, wie auch immer ;)

PHP:
<?php
require ("config.inc.php");
$db = mysql_connect($dbserver,$nutzer,$passwort);

$query=mysql_query("SELECT * from $dbtab WHERE uid='$fuid'");
if(mysql_num_rows($query)>0)
{
  mysql_db_query($dbname,"UPDATE $dbtab SET zeit='$fzeit',score='$fscore',level='$flevel') WHERE uid='$fuid'");
}
else
{
  mysql_db_query($dbname,"INSERT INTO $dbtab (uid,nick,zeit,score,level) VALUES ('$fuid','$fnick','$fzeit','$fscore','$flevel')");
}
mysql_close($db);
?>
 
Ganz einfach:
Du holst dir mit einem SQL-Query die Scrore des Userser heraus:
PHP:
SELECT `score` FROM `highscore` WHERE `user`=$iUserId;
Dann schaust du mit mysql_num_rows, ob MySQL einen Eintrag gefunden hat.

Wenn ja, dann prüfst du, ob die Score höher ist und updatest, wenn nein,
dann benutzt du ein Insert:
Code:
$iUserId    = 123;  // UserID
$iUserScore = 132;  // Punktezahl

$iResult = mysql_query("SELECT `score` FROM `highscore` WHERE `userid`='".$iUserId."';");
if (mysql_num_rows($iResult) == 0) {
    mysql_query("INSERT INTO `highscore` (`score`, `userid`) VALUES ('".$iUserScore."', '".$iUserId."');");
    // ein INSERT halt
} else {
    $aScoreInfo = mysql_fetch_assoc($iResult);
    if ($aScoreInfo['score'] < $iUserScore) {
        mysql_query("UPDATE `highscore` SET `score`='".$iUserScore."' WHERE `userid`='".$iUserId."';");
        // UPDATE
    } else {
        // Zu wenig Punkte
    }
}
 
Erster *zungerausstreck*

Ach...ich seh grade, dass ich den Teil mit dem Score-Vergleich vergessen habe...
Aber das hat Fabian wohl schon erledigt :)
Och, was das hier doch für ein Service ist :P

Geht ja wie am Fliesband hier...
 
!

Nun ja...
Erstmal danke für eure schnellen antworten.. auf euch kann man sich immer verlassen...
Und was anderes :D
Ich bin hier als FlashDesigner eingestellt...
Ich sage wie die sachen aussehen müssen.. mache skizzen... ,Photoshoplayouts... usw...
Und alles was in Flash gemacht wird mach ich selber...
Ich hab aber leider keine ahnung von php...
Deswegen die frage :D
Wäre ich programmierer hier würde ich mich ja eh schämen so eine frage zu stellen...
Achja... die Highscore liste ist für ein Flash Game :)
so long..
greets
und thx for fast help !
tim
 
Zurück