Hallo @ all !
Habe gerade ca. 1 Stunde in diesem Forum gesucht, teils gefunden und gelesen, aber irgendwie hat es mir nicht weiter geholfen. Ich bin leider PHP-Anfänger, und bitte Euch - wenn Ihr helfen wollt - um konkrete Hilfe.
Nun also, mein erster Beitrag, gleich mit einem schwierigen Problem.
Ich schreibe einen Eventkalender. Dies wird eine tabellarische Übersicht bestehend aus 3 Spalten : [Datum],[Ort],[Art]. Der User sieht beim Aufruf halt nur diese Tabelle mit mehreren Einträgen wie z.B.:
12.06.2004 | 12345 Berlin | Abendessen mit Franz im Hilton
Alle diese Events stehen in einer Textdatei ( events.txt ), die wie folgt aussieht :
MySQL wäre besser, ich weiss, aber in diesem Fall muss es mit einer Textdatei gehen. Wer sich über die seltsame Datumsformatierung wundert dem sei gesagt, dass ich dies so gemacht habe, um die Events leichter nach Datum sortieren zu können... Die "@@" sind meine Trenner.
Ich kann die Datei auslesen mit folgendem Code ( eventlist.php ) :
Das funktioniert soweit.
Auch neue Einträge schreiben ist kein Thema ( newentry.php )
Die Schwierigkeiten treten auf, wenn ein Event gelöscht werden soll : ( eventedit4.php ) :
Dies funktioniert leider nicht, und ich weiss nicht warum. Kann das jemand von Euch bitte mit Erklärungen durchsehen, und ggfs. korrigieren ?
Vielen Dank schonmal im Voraus !!!
Gruss,
Volker
Habe gerade ca. 1 Stunde in diesem Forum gesucht, teils gefunden und gelesen, aber irgendwie hat es mir nicht weiter geholfen. Ich bin leider PHP-Anfänger, und bitte Euch - wenn Ihr helfen wollt - um konkrete Hilfe.
Nun also, mein erster Beitrag, gleich mit einem schwierigen Problem.
Ich schreibe einen Eventkalender. Dies wird eine tabellarische Übersicht bestehend aus 3 Spalten : [Datum],[Ort],[Art]. Der User sieht beim Aufruf halt nur diese Tabelle mit mehreren Einträgen wie z.B.:
12.06.2004 | 12345 Berlin | Abendessen mit Franz im Hilton
Alle diese Events stehen in einer Textdatei ( events.txt ), die wie folgt aussieht :
Code:
20050409@@12345 Berlin@@Ostereierkraulen am Wannsee 20041207@@12333 Berlin@@Sascha hat nen Kater
Ich kann die Datei auslesen mit folgendem Code ( eventlist.php ) :
Code:
<?php $f = 'events.txt'; $t = array(); if (!file_exists($f)) die ("Error: $f existiert nicht"); $e = file($f); sort ($e); for ($i=0; $i<count($e); $i++) { $e[$i] = trim($e[$i]); if (empty($e[$i])) continue; $x = @explode('@@', $e[$i]); $d = (isset($x[0])) ? substr($x[0],6,2).'.'.substr($x[0],4,2).'.'. substr($x[0],0,4) : ''; $n = count($x); switch ($n) { case 1: $t[] = array('datum' => $d); break; case 2: $t[] = array('datum' => $d, 'ort' => $x[1]); break; case 3: $t[] = array('datum' => $d, 'ort' => $x[1], 'art' => $x[2]); break; case 4: $t[] = array('datum' => $d, 'ort' => $x[1], 'art' => $x[2], 'darf' => $x[3]); break; } } # $t erhält das Ergebnisarray $anzahl=count($t); foreach ( $t as $wert ) { foreach ( $wert as $schluessel=>$endwert ) { print "$endwert\n"; }; print "<br>"; }; ?>
Auch neue Einträge schreiben ist kein Thema ( newentry.php )
Code:
<form action="newentry.php" method="POST"> <input type="text" name="tag" size="2"> Tag<br> <input type="text" name="monat" size="2"> Monat<br> <input type="text" name="jahr" size="4"> Jahr<br> <input type="text" name="ort" size="40"> Plz, Ort<br> <textarea name="art" rows="5" cols="30" wrap="virtual"></textarea> Veranstaltung <br><br> <input type="submit" name="Eintragen" value="Eintragen"> </form> <?php if (isset($_POST['Eintragen'])) { $tag=$_POST['tag']; $monat=$_POST['monat']; $jahr=$_POST['jahr']; $ort=$_POST['ort']; $art=$_POST['art']; $f = 'events.txt'; $fp = fopen( 'events.txt', 'a' ); $newentry = "$jahr$monat$tag@@$ort@@$art \r\n"; fwrite($fp,$newentry); fclose ( $fp ); } ?>
Code:
<?php $f = 'events.txt'; $t = array(); if (!file_exists($f)) die ("Error: $f existiert nicht"); $e = file($f); sort ($e); for ($i=0; $i<count($e); $i++) { $e[$i] = trim($e[$i]); if (empty($e[$i])) continue; $x = @explode('@@', $e[$i]); $d = (isset($x[0])) ? substr($x[0],6,2).'.'.substr($x[0],4,2).'.'. substr($x[0],0,4) : ''; $n = count($x); switch ($n) { case 1: $t[] = array('datum' => $d); break; case 2: $t[] = array('datum' => $d, 'ort' => $x[1]); break; case 3: $t[] = array('datum' => $d, 'ort' => $x[1], 'art' => $x[2]); break; case 4: $t[] = array('datum' => $d, 'ort' => $x[1], 'art' => $x[2], 'darf' => $x[3]); break; } echo "<form action='eventedit4.php' method='POST'>"; print "$d $x[1] $x[2] "; echo "<input type='submit' name='Delete' value='Delete'>"; echo "<input type='submit' name='Edit' value='Edit'><br>"; echo "</form>"; echo "<hr><br>"; if (isset($_POST['Delete'])) { $f = 'events.txt'; $contens = file($f); array_splice($contens,$i,1); $contens= implode("",$contens); $fp = fopen( 'events.txt', 'w' ); fwrite($fp, $contens); fclose ( $fp ); } } ?>
Vielen Dank schonmal im Voraus !!!
Gruss,
Volker
Kommentar