Problem bei Einlesen in Array
Andreas
- php
Hi,
Ich habe ein Problem mit dem einlesen der Zeilen einer Datei in ein Array. Mein "Gästebuch" speichert die Einträge so in der Datei ab, dass der neuste immer ganz oben steht. Mein Problem ist jetzt, dass wenn ich die Zeilen in ein Array einlesen will, der letzte Eintrag GANZ UNTEN in der Datei auf einmal 1 ist. Der vorletzte 2 usw.. Dabei entsteht für mich das Problem, dass ich nicht weiß wie ich meinem Gästebuch beim Löschen eines Eintrages sagen soll, dass der letzte Eintrag die Nummer 1 ist.
Kann mit jemand helfen?
Gruß Andreas
Anbei der Code zum Auslesen:
$nummer = $_GET['nummer'];
$aktion = $_GET['aktion'];
$dateiname = $nummer . ".dat";
$datum = date("d.m.Y",time()) . " um " . date("H:i:s");
$openFile = fopen($dateiname, "r");
if($aktion == 'show')
{
while(!feof($openFile))
{
$line = fgets($openFile,999999);
$inhalt .= $line[$i];
$line = trim($line);
$mtext = explode("|",$line);
$name = $mtext[0];
$mail = $mtext[1];
$datum = $mtext[2];
$text = $mtext[3];
echo "
<table class="tbl" cellspacing="0" cellpadding="2" width="50%">
<tr>
<td class="uleiste"><a href="mailto:$mail">$name\n</a> <font size="1">(Schrieb am $datum) - <a href="guestbook.php?nummer=1&aktion=delete&zeile=$line[$i]">Löschen</a></font></td>
</tr>
<tr>
<td class="td1">$text\n</td>
</tr>
</table><br>";
}
echo "<br><br>
<a href="guestbook.php?nummer=$nummer&aktion=eintragen">Eintragen</a>";
}
moin andres
also ich würde die sache ganz anders angehen
denn über zeilennummern zu gehen ist denke ich mal ungünstig
ich hab mir dein script jetz nich genau angeschaut, aber ich hab gesehen, dass du die eindeutige zuordnung durch die zeilennummer definierst
ich würde einfach folgendes machen (bzw. besser wär ne kleine datenbank, mysql oder ähnliches)
du speicherst das datum und die zeit, wodurch du dann also dadurch sowohl einen "datensatz" eindeutig definieren kannst ( es ist unwahrscheinlich, dass 2 leute zur exakt der selben zeit was eintragen ;) )
UND, was noch viel wichtiger ist, du kannst dann das datum und die zeit filtern, und dann dein array sortieren, rückläufig versteht sich, wodurch die positionen in der datei absolut nebensächlich wären!
am besten macht sich natürlich eine datenbnak, aber wenn du es so machen willst, wirst du sicherlich keine zur verfügung haben
naja
ich hoffe ich konnte dir helfen
PS: ich hoffe du ersetzt den strich ( | ) durch ein entsprechenden html-code, da sonst das array länger wird, und somit der text nach solch einem strich abgeschnitten würde, ich verwende zum beispiel dn strich sehr gerne ;)
gruß
the mech | CODE:NC01