Hallo Leute,
ich komme einfach nicht weiter.
Was muss ich am folgenden php-script abändern damit auch zwei gleiche Namen und Beträge in meine data.txt (=highscoretabelle) reingeschrieben werden können:
<?
//$winnername="Mario"; //kommt von Flash zurück
//$winnercredits=120; //kommt von Flash zurück
$min = -1;
$fp = fopen("data.txt","r");
// zeile für zeile einlesen
while($data = fgets($fp,1024)){
// jede zeile aufsplitten
$data = explode(";",$data);
// ein array erzeugen mit allen eintraegen
$hitlist[] = array (score=>$data[0], plr=>trim($data[1]));
// und den kleinsten Wert merken
if ($min<0 || $min>$data[0])
$min = $data[0];
}
fclose($fp);
$anzahl = count($hitlist);
if (
// wenn noch keine 10 Einträge da sind
$anzahl<10 ||
// oder der neue Score größer ist als der bisherige kleinste
$min<$winnercredits)
{ // eintragen
$hitlist[] = array (score=>$winnercredits, plr=>$winnername);
function vergleich ($a, $b)
{
return $b[score]-$a[score];
}
usort ($hitlist, 'vergleich');
// maximal zehn Elemente des Arrays speichern:
$fp=fopen("data.txt","w");
for ($i=0; $i<10 && $i<count($hitlist); $i++)
fputs($fp,$hitlist[$i][plr].";".$hitlist[$i][score]."\n");
fclose ($fp);
}
?>
data.txt:
Mario;120
Hoschi;200
Martin;614
Rene;345
Jan;683
Frank;405
Superwinner;1239
Nach ausführen des codes sieht meine data.txt jetzt so aus:
Mario;120
200;Hoschi
614;Martin
100;Erich
683;Jan
405;Frank
1239;Superwinner
120;Mario
345;Rene
Zwei gleiche Einträge nimmt er. Aber die nachfolgenden dreht er um!?!?!?
Aussehen sollte die richtige data.txt so:
Mario;120
Mario;120
Hoschi;200
Martin;614
Rene;345
Jan;683
Frank;405
Superwinner;1239
Bitte dringend um Rat.
ich komme einfach nicht weiter.
Was muss ich am folgenden php-script abändern damit auch zwei gleiche Namen und Beträge in meine data.txt (=highscoretabelle) reingeschrieben werden können:
<?
//$winnername="Mario"; //kommt von Flash zurück
//$winnercredits=120; //kommt von Flash zurück
$min = -1;
$fp = fopen("data.txt","r");
// zeile für zeile einlesen
while($data = fgets($fp,1024)){
// jede zeile aufsplitten
$data = explode(";",$data);
// ein array erzeugen mit allen eintraegen
$hitlist[] = array (score=>$data[0], plr=>trim($data[1]));
// und den kleinsten Wert merken
if ($min<0 || $min>$data[0])
$min = $data[0];
}
fclose($fp);
$anzahl = count($hitlist);
if (
// wenn noch keine 10 Einträge da sind
$anzahl<10 ||
// oder der neue Score größer ist als der bisherige kleinste
$min<$winnercredits)
{ // eintragen
$hitlist[] = array (score=>$winnercredits, plr=>$winnername);
function vergleich ($a, $b)
{
return $b[score]-$a[score];
}
usort ($hitlist, 'vergleich');
// maximal zehn Elemente des Arrays speichern:
$fp=fopen("data.txt","w");
for ($i=0; $i<10 && $i<count($hitlist); $i++)
fputs($fp,$hitlist[$i][plr].";".$hitlist[$i][score]."\n");
fclose ($fp);
}
?>
data.txt:
Mario;120
Hoschi;200
Martin;614
Rene;345
Jan;683
Frank;405
Superwinner;1239
Nach ausführen des codes sieht meine data.txt jetzt so aus:
Mario;120
200;Hoschi
614;Martin
100;Erich
683;Jan
405;Frank
1239;Superwinner
120;Mario
345;Rene
Zwei gleiche Einträge nimmt er. Aber die nachfolgenden dreht er um!?!?!?
Aussehen sollte die richtige data.txt so:
Mario;120
Mario;120
Hoschi;200
Martin;614
Rene;345
Jan;683
Frank;405
Superwinner;1239
Bitte dringend um Rat.
Kommentar