Editieren von Einträgen

Nucleus

Erfahrenes Mitglied
Hi hab ein code geschrieben zum editieren der Einträge. Aber leider habe ich einen Fehler in diesem Code. Wenn ich jetzt zb einen Namen ändere dann schreibt er mir den geänderten Datensatz an die erste Stelle.

Kann mir jemand helfen?

Hier der Code
PHP:
$log = "../db/eintraege.txt";
$array = file($log);
$eintrag = explode("|-|",$array[$eintragnr]);

echo "$nr";
$log = "../db/eintraege.txt";
$newtext = "$text0|-|$text1|-|$text2\r\n";
$zeile = $nr;
$i = $nr;
$alte = fopen($log,"r");
flock($alte, 1) or die ("Kann die Quelldatei $altefile nicht loken.");
//----------------------- Anlegen der neuen Datei------------------------
$neue = fopen($log.".editiert","w");
flock($neue, 2) or die ("Kann die Quelldatei $neuefile nicht loken.");

while(!feof($alte))

{
$inhalt = fgets($alte,8000);
if ($zeile = $i ){
fputs($neue,$newtext);
}else{
fputs($neue,$newtext);
}
//$i++;
}
fclose($alte);

unlink($log);
fclose($neue);
rename($log.".editiert",$log);

echo"$textfield";
 
Hm, schaun wa mal und nen kleiner Tipp am Rande

Also da ich nicht ganz so schlau daraus werde was du machen möchtest hier also ein Lösungsvorschlag:

Lies die Datei in einen Array (Zeile für Zeile) und lasse dann die Zeile die du bearbeiten möchtest exploden ( "explode();" ). Dann den Eintrag ändern und anschließend alles wieder imploden und den Array ändern und in das File schreiben!

Dies könnte jedoch bei großen Dateien ein echtes Performanceproblem geben daher hier der Tipp:

Wie wäre es mit ner richtigen MySQL Datenbank??? Ist wesentlich einfacher, schneller und kosten tut es auch nicht die Welt!!!
 
hi danke für deine Hilfe habe den code neu geschrieben und verbessert.
Mysql ja/nein. Ich denke mir das ich für ein gästebuch newsscript etc keine datenbank brauche. Sind ja nicht so unfangreich wie ein Forum.
Oder ?

mfg nucle
 
was er meint is der zufall das 3 personen gleichzeitig dir was ins gästebuch schreiben oder in die news.............alle 3 greifen auf die gleiche datei gleichzeitig zu und da wird dann text salat draus :)

oder der erste will was editieren öffnet die und arbeitet dran rum............in der selben zeit öffnet ein zweiter die datei und schreibt ebenfalls dran herum und sendet sie vor dem ersten ab.........wenn dann der erste seinen beitrag editiert hat ist das erarbeitet von No. 2 weg

capiche


bissl blöd erklärt naja vielleicht steigste ja dahinter :)
 
@tefla

Ich weiß was er gemeint hat - aber wie oft kommt sowas schon vor.

oder der erste will was editieren öffnet die und arbeitet dran rum............in der selben zeit öffnet ein zweiter die datei und schreibt ebenfalls dran herum und sendet sie vor dem ersten ab

Naja um genau zu sein dauert ein eintrag ja nur wenige sekunden.
Er öffnet sie und schliesst sie gleich wieder.Und das diesen Vorgang 3 Leute zur gleichen zeit machen kommt eher sehr selten vor.
 
:) gg yo da hast recht


aber ich hab ja noch die möglichkeit die datei zu sperren mit flock und wenn der eintrag erledigt is schwups ab in die txt damit
 
Zurück