Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: edycja
Forum PHP.pl > Forum > Przedszkole
Gość_maiki
Witam
jestem początkującym i mam problem zrobiłem edycje danych poprzez formularz (na plikach txt) ale wyświetla mi tylko ostatnio dodane dane smile.gif
Co trzeba zmienić aby pokazywało wszytkie dane a nie tylko oatanią linijke ?

Kod
<?
$file = file("a.txt");
$total = count($file);
for($i=0; $total > $i; $i++){
$split = explode("||", $file[$i]);
}
?>

<form action="zapisz.php" method="post">
<input type="text" name="gracz" size="45" value=<? echo $split[1]; ?> ><br>
<input type="text" name="druzyna" size="45" value=<? echo $split[2]; ?> ><br>
<input type="text" name="link" size="45" value=<? echo $split[3]; ?> ><br>
<input type="text" name="gol" size="45" value=<? echo $split[4]; ?> ><br>
<input type="submit" value="submit"><br>
</form>
sf
Najlepiej przed formularzem edycyjnym wybrać, którą linie chcesz edytować, a następnie :

  1. <?php
  2. $id = $_GET['id'];
  3. $split = explode(&#092;"||\", $file[$id]);
  4. /* i formularz tak jak masz ...
  5.  + jedno pole jeszcze gdzie zapiszesz numer lini, która edytowałeś, powinno to b
  6. ć pole typu hidden */
  7. ?>


Bo Tobie przelatuje cała pętla i ciągle zapisuje w $split, tylko gdy pętla się powtarza to te dane zostają nadpisane przez kolejną linie. Ostatnia linia zostaje w tej tablicy bo nie ma już nic co by mogło nadpisać te dane, pętla się kończy.
Gość_maiki
A nie można zrobić tak żeby cała zawartość pliku a.txt była wyświetlana do edycji ?
sf
Można, ale to jest głupie... bo jeżeli plik będzie miał 100 wpisów ?

Wystarczy umieścić formularz w pętli :

  1. <form action=\"zapisz.php\" method=\"post\">
  2. <?php
  3. $file = file(&#092;"a.txt\");
  4.  
  5. foreach($file as $line) {
  6. $split = explode(&#092;"||\", $line);
  7.  
  8. ?>
  9.  
  10. <input type=\"text\" name=\"gracz[]\" size=\"45\" value=<?php echo $split[1]; ?> ><br>
  11. <input type=\"text\" name=\"druzyna[]\" size=\"45\" value=<?php echo $split[2]; ?> ><br>
  12. <input type=\"text\" name=\"link[]\" size=\"45\" value=<?php echo $split[3]; ?> ><br>
  13. <input type=\"text\" name=\"gol[]\" size=\"45\" value=<?php echo $split[4]; ?> ><br>
  14. <br>
  15. <?php
  16. }
  17. ?>
  18. <input type=\"submit\" value=\"submit\">
  19. </form>
Gość_maiki
Dokładnie o to mi chodziło. DZIEKI JESTEŚ WIELKI winksmiley.jpg
Gość_maiki
wszytko łądnie jest tylko zapomniałem o tym żeby były zapisywane w tym samym miejscu :] bo przez plik zapis.php lecą od nowej linijki tzn wyskuje array array araay
sf
Może dlatego, że name to teraz są tablice? W innym przypadku jakby odróżniały, które pole odpowiada, której linijce? Zmodyfikuj plik zapis.php, aby odczytywał tablice.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.