Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Edycja danych z pliku *.txt.
moto0095
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Witam. Szukałem w google, sam kombinowałem, i nic (IMG:style_emoticons/default/sad.gif) .
A więc tak jak w temacie chodzi mi o skrypt który pozwalał by na edycję danych z pliku *.txt.
Dokładnie taki jak [TUTAJ].
Zna ktoś coś takiego (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif)

P.S. - strasznie mi jest to potrzebne.

Kombinując dalej udało mi się uzyskać coś takiego:
  1. <?php
  2. $plik = "db.txt";
  3.  
  4. if ((isset($_POST['usun'])) AND (is_numeric($_POST['usun']))) {
  5. /* sprawdzam czy zmienna $_POST['usun'] zostala zainicjonowana i czy jest cyfrą */
  6.  
  7. $dane = file($plik); /* pobieram dane z pliku */
  8. unset($dane[$_POST['usun']]); /* usuwam wybrany rekord tablicy */
  9. $f = fopen($plik, "w"); /* nawiązuje połączenie z plikiem i kasuje jego zawartosc */
  10. foreach($dane as $linia){
  11. $linia = $_POST['text'];
  12. fputs($f, $linia); /* wprowadzam linie po linii do pliku */
  13. }
  14. fclose($f); /* zamykam polączneie z plikiem */
  15.  
  16. }
  17.  
  18. ?>
  19.  
  20. <form action="" method="post">
  21. <?php
  22. $dane = file($plik);
  23.  
  24. for($i=0;$i<count($dane);$i++) {
  25. list($imie[$i], $nazwisko[$i], $miejscowosc[$i]) = explode(" || ", $dane[$i]);
  26. }
  27.  
  28. for($i=0;$i<count($imie);$i++)
  29. echo '<input type="radio" name="usun" value="'.$i.'">'.$imie[$i]." ".$nazwisko[$i].", ".$miejscowosc[$i]."<br>";
  30.  
  31. ?>
  32. <input type="text" name="text">
  33. <input type="submit" value="zmien" />
  34. </form>


lecz to usuwa całą zawartość pliku i zastępuje ją tą wpisaną.
A jak zrobić aby tylko dana linia się zmieniała (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif)

Ten post edytował moto0095 11.04.2010, 18:59:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
moto0095
post
Post #2





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Już sobie sam to zrobiłem (IMG:style_emoticons/default/smile.gif) .
BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO BARDZO CI DZIĘKUJĘ mortus (IMG:style_emoticons/default/exclamation.gif) (IMG:style_emoticons/default/exclamation.gif) (IMG:style_emoticons/default/exclamation.gif) (IMG:style_emoticons/default/exclamation.gif) (IMG:style_emoticons/default/smile.gif)

Tylko, że ten plik powinien wyglądać tak:
  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. // pobieramy aktualne dane z pliku i zapisujemy je w tablicy data
  5. $file = file('db.txt', FILE_IGNORE_NEW_LINES);
  6. if(count($file) == 0) {
  7. echo 'Brak danych!';
  8. }else{
  9. foreach($file as $line) {
  10. $data[] = explode('||', $line);
  11. }
  12.  
  13. if(!empty($_POST) && $_POST['action'] == 'saveChanges') {
  14. $row = $_POST['row'];
  15. $firstname = isset($_POST['firstname']) ? $_POST['firstname'] : '';
  16. $lastname = isset($_POST['lastname']) ? $_POST['lastname'] : '';
  17. $city = isset($_POST['city']) ? $_POST['city'] : '';
  18. $data[$row][0] = $firstname;
  19. $data[$row][1] = $lastname;
  20. $data[$row][2] = $city;
  21. $file = fopen("db.txt", "w");
  22. foreach($data as $line){
  23. $newline = implode('||', $line);
  24. fputs($file, $newline . "\n");
  25. }
  26. fclose($file);
  27. }
  28.  
  29. if(isset($_GET['action'])) {
  30. if($_GET['action'] == 'edit' && isset($_GET['row']) && $_GET['row'] != '') {
  31. $row = $_GET['row'];
  32. ?>
  33. <form action="edycja.php" method="post">
  34. <input type="hidden" name="action" value="saveChanges" />
  35. <input type="hidden" name="row" value="<?php echo $row; ?>" />
  36. <dl>
  37. <dt>Imię:</dt>
  38. <dd><input type="text" name="firstname" value="<?php echo $data[$row][0]; ?>" /></dd>
  39. </dl>
  40. <dl>
  41. <dt>Nazwisko:</dt>
  42. <dd><input type="text" name="lastname" value="<?php echo $data[$row][1]; ?>" /></dd>
  43. </dl>
  44. <dl>
  45. <dt>Miejscowość:</dt>
  46. <dd><input type="text" name="city" value="<?php echo $data[$row][2]; ?>" /></dd>
  47. </dl>
  48. <input type="submit" value="Zapisz zmiany" />
  49. </form>
  50. <?php
  51. }
  52. }
  53.  
  54. // wyświetlamy dane w odpowiedni sposób
  55. ?>
  56. <style type="text/css">
  57. td {
  58. width: 150px;
  59. }
  60. </style>
  61. <table cellspacing="0" cellpadding="0" border="0">
  62. <tr><td>Imię</td><td>Nazwisko</td><td>Miejscowość</td><td>Akcja</td></tr>
  63. <?php
  64. foreach($data as $rowNumber => $row) {
  65. ?>
  66. <tr>
  67. <td><?php echo $row[0]; ?></td>
  68. <td><?php echo $row[1]; ?></td>
  69. <td><?php echo $row[2]; ?></td>
  70. <td><a href="edycja.php?action=edit&row=<?php echo $rowNumber; ?>">Edytuj</a></td>
  71. </tr>
  72. <?php
  73. }
  74. ?>
  75. </table>
  76. <?php
  77. }
  78. ?>


bo tak jak ty podałeś zawsze wyświetli "Brak danych!" (IMG:style_emoticons/default/smile.gif)

Ten post edytował moto0095 11.04.2010, 22:02:02
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 03:53