na początku strony mam 3 pola tekstowe: pole1, pole2, pole3. i przycisk "zapisz".
Dane wpisane w pola tekstowe zapisują się do pliku tekstowego za pomocą kodu:
// dane pochodzace z formularza
$dane = $pole1."|".$pole2."|".$pole3."\n";
// przypisanie zmniennej $file nazwy pliku
$file = "baza.txt";
// uchwyt pliku, otwarcie do dopisania
$fp = fopen($file, "a");
// blokada pliku do zapisu
flock($fp, 2);
// zapisanie danych do pliku
fwrite($fp, $dane);
// odblokowanie pliku
flock($fp, 3);
// zamkniecie pliku
fclose($fp);
następnie pod tym mam tabelkę do której wczytują się dane z tego pliku. Wygląda to tak:
echo "<table border=1 cellspacing=0 cellpadding=0 width=550px>";
// wczytanie zawartosci pliku do tablicy
$file = file("baza.txt");
// przechodzimy przez tablice za pomoca petli foreach
foreach($file as $value) {
// rozbijamy poszczególne linie na czesci
$exp = explode("|",$value);
// wyswietlamy rozbity tekst
echo "<tr><td> <a href=$exp[1]>" .$exp[0]. "</a></td><td>".$exp[2]."</td></tr>";
}
echo "</table>";
i pod tym wszystkim jest wstawiony skrypt do edytowania wcześniej zapisanych danych, jeśli by się na przykład popełniło gdzieś błąd przy wpisywaniu w pierwsze pola. Skrypt ten składa się z 3 pól tekstowych: nazwa, link, autor.
a wygląda to tak:
$plik = "baza.txt";
$file = file($plik);
foreach($file as $value) {
$sp = explode("|", $value);
list($nazwa,$link,$autor) = $sp;
echo '<form name="ksiega" method="post">
<table cellpadding="0" cellspacing="0" width="550" border="1">
<tr>
<td>Nazwa :</td>
<td ><input type="text" name="nazwa" value="'.$nazwa.'" />
</td>
</tr>
<tr>
<td>Autor :</td>
<td ><input type="text" name="autor" value="'.$autor.'" />
</td>
</tr>
<tr>
<td>Link :</td>
<td><input type="text" name="link" value="'.$link.'" />
</td>
</tr>
<tr>
<td> </td>
<td><input class="button" type="submit" value="Zapisz poprawione"/>
</td>
</tr>
</table>
</form>';
}
i teraz moje pytanie: jeśli zmienie coś w polach edycyjnych (nazwa, link, autor) to jak to potem zapisac do pliku tekstowego zpowrotem ??
i jak usunąć cały wpis ?(to znaczy tylko jeden rekord)!