No to spróbuj tak:
w pliku dodaj.php na końcu daj przecinek, a nie przejście do nowej linii
<?php
$dane = $dana1.",".$dana2.",".$dana3.",";
?>
Teraz w pliku lista.php, przy pobieraniu wartości z pliku, odpowiednio modyfikujesz $exp, tak, żeby po 3 wartościach dawało linie <hr>, a w przeciwnym wypadku dajesz "-", np. tak:
<?php
for($i = 0; $i<$licz; $i++) {
if($i % 3
== 0
) { echo "<hr />"; } }
?>
Musisz tylko trochę pokombinować z modulo, bo rekordy w tablicy są liczone od 0 i jak zostawisz tak, jak napisałem, to zaraz po pierwszym rekordzie wyświetli ci linię, bo 0/3 nie daje żadnej reszty, więc warunek jest prawdziwy i wyświetli ci linię.
A jeśli chcesz, żeby mieć szczegóły danego rekordu po kliknięciu na link, to możesz stworzyć pliki o takiej nazwie jak $dana1, $dana2, itd. i potem w pliku lista.php w pętli for dajesz tak:
<?php
echo "<a href=\"pokaz_szczegoly.php?nazwa=".$exp[$i]."\">".$exp[$i]."</a>"; ?>
Teraz tworzysz plik pokaz_szczegoly.php i dajesz na początek np. coś takiego:
<?php
$plik = $_GET["nazwa"].".txt";
?>
, a w dalszej części kodu, to wczytasz plik, za pomocą explode wczytasz dane do tablicy i potem wyświetlisz w żądany przez ciebie sposób.
Co do edycji i usuwania rekordów, to zauważ, że jeśli plik wpisy.txt podzielisz względem przecinków, to każde dodane przez ciebie dane mają klucze, np. 0-2 - pierwsza linijka, 3-5 - druga linijka, 6-8 - trzecia linijka, itd.
Więc teraz możesz do każdej linijki stworzyć link edytuj i usuń, do którego dodasz parametr z początkowym i końcowym kluczem, np. coś takiego
<?php
echo "<a href=\"edit.php?p=0&k=2\">edytuj</a>"; ?>
tylko, że zamiast 0 i 2 zrobisz, tak, żeby automatycznie liczyło ci początek i koniec, a w pliku edit.php, robisz formularz, taki jak w pliku dodaj.php, tylko, że możesz jeszcze do niego dodać wartości pobrane z pliku wpisy.txt, dla odpowiednich kluczy
<?php
$wartosc_1= $_GET["p"];
$wartosc_2= $wartosc_1+1;
$wartosc_3= $_GET["k"];
$file = file("wpisy.txt"); foreach($file as $value) {
$edit1=$exp[$wartosc_1];
$edit2=$exp[$wartosc_2];
$edit3=$exp[$wartosc_3];
}
echo '<form action="przetworz_edytuj.php" method="post"> <input type="text" name="dana1" value="'.$edit1.'" /><br />
<input type="text" name="dana2" value="'.$edit2.'" /><br />
<input type="text" name="dana3" value="'.$edit3.'" /><br />
<input type="hidden" name="begin" value="'.$wartosc_1.'" />
<input type="submit" value="Edytuj" />
</form>';
?>
Teraz po kliknięciu w edytuj, dane są wysyłane do pliku przetworz_edytuj.php, w którym najpierw wczytasz do zmiennej wartości z pliku wpisy.txt do miejsca, w którym zaczyna sie edycja, np. w taki sposób:
<?php
$poczatek = $_POST["begin"];
$koniec = $poczatek+3;
$_dana1 = $_POST["dana1"];
$_dana2 = $_POST["dana2"];
$_dana3 = $_POST["dana3"];
$file = file("wpisy.txt"); foreach($file as $value) {
for($y=0; $y<$poczatek; $y++) {
$zapisz .= $exp[$y];
$zapisz .= ",";
}
$zapisz .= $_dana1.",".$_dana2.",".$_dana3.",";
for($i=$koniec; $i<$licz; $i++) {
$zapisz .= $exp[$i];
$zapisz .= ",";
}
}
$edytowane_wartosci = $zapisz;
?>
Teraz to juz tylko zapisujesz do pliku wpisy.txt zmienną $edytowane_wartosci, tylko nie dodając na końcu pliku, tylko zamieniając zawartość pliku na zawartośc zmiennej $edytowane_wartosci.
Usuwanie robisz w podobny sposób, tylko, że usuwasz tą linię np. 0-2, resztę zapisujesz do zmiennej np. $usuniete_wartosci i znów podmieniasz zawartość pliku wpisy.txt na zawartość zmiennej $usuniete_wartosci.
I to by było na tyle.
Mam nadzieję, że pomogłem.
Pozdrawiam.