Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> edycja
-Gość_maiki-
post 12.11.2004, 21:02:08
Post #1





Goście







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>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
sf
post 12.11.2004, 21:13:19
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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.

Ten post edytował sf 12.11.2004, 21:14:47


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
-Gość_maiki-
post 12.11.2004, 21:27:23
Post #3





Goście







A nie można zrobić tak żeby cała zawartość pliku a.txt była wyświetlana do edycji ?
Go to the top of the page
+Quote Post
sf
post 12.11.2004, 21:35:00
Post #4





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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>


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
-Gość_maiki-
post 12.11.2004, 21:41:36
Post #5





Goście







Dokładnie o to mi chodziło. DZIEKI JESTEŚ WIELKI winksmiley.jpg
Go to the top of the page
+Quote Post
-Gość_maiki-
post 12.11.2004, 21:46:50
Post #6





Goście







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
Go to the top of the page
+Quote Post
sf
post 12.11.2004, 21:50:44
Post #7





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 00:58