Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Edycja pliku tekstowego w formularzu.
Krisso
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.12.2007

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


Witam mam problem, ponieważ chcę stworzyć kod, który umożliwiłby edytowanie/usuwanie znalezionych pozycji z pliku.

Tak wyglądają fragmenty plików:
baza.txt
każda linia to kolejny element zbioru
Cytat
Mickiewicz Adam||Dziady||PWN||1985||456123-987-987
Sienkiewicz Henryk||Potop||PWN||1992||1236-9875-4865
Jajuga Krzysztof||Inwestycje||WN PWN||2007||7896-5235-7842
Szewczyk Ryszard||Bankowa obsługa firmy||Oficyna Ekonomiczna||2002||7896-5654-5456


do tego użyć chciałem już wcześniej stworzonej wyszukiwarki:
edytor.php
fragment kodu
  1. <?php
  2. $pole1 = trim($_POST['pole1']); 
  3. echo '<form action="" method="post">
  4. <center>  
  5. <input type="text" name="pole1" style="width:  130px;" /> 
  6. <input type="submit" value="Szukaj" />
  7. <br />
  8. </center>
  9. </form>';
  10. ?>
  11. //...
  12. //zbędna cześć kodu
  13. //...
  14. <hr >
  15. <?php
  16. $arrFile = file( 'baza.txt' );
  17. for( $i = 0; $i < count( $arrFile ); $i++ )
  18. {
  19. list($autor[$i], $tytul[$i], $wyd[$i],$rw[$i],$isbn[$i],$gat1[$i],$gat2[$i],$opis[$i] ) = explode("||", $arrFile[$i]);
  20. $line = explode( '||', $arrFile[ $i ] ); 
  21. if( eregi( $pole1, $line[1])||eregi( $pole1, $line[0] ) )  
  22. { 
  23. echo "<strong>Autor :</strong>".$autor[$i].
  24. "<br /><strong> Tytuł:</strong>".$tytul[$i].
  25. "<br /><strong>Wydawnictwo:</strong>".$wyd[$i].
  26. "<br /><strong>Rok wydania:</strong>".$rw[$i].
  27. "<br /><strong>Numer ISBN:</strong>".$isbn[$i].
  28. "<br /><strong>Gatunek podstawowy :</strong>".$gat1[$i].
  29. "<br /><strong>Gatunek dodatkowy :</strong>".$gat2[$i].
  30. "<br /><strong>Opis :</strong>" .$opis[$i].
  31. "<br />";
  32. <input type="edycja.php" value="Edytuj" /> 
  33. "<hr />";
  34.  
  35. }
  36.  else { ; }
  37. }
  38. ?>


I teraz powstaje problem ponieważ zawsze może zdażyć sie sytuacja, że wyszukany autor bedzie miał kilka książek, a my chcemy edytować tą jedną bez konieczności kolejnego wpisywania inf do wyszukiwarki.
Myślałem o tym aby do każdego z wyszukanych elementów dodatkowo pojawiał sie przycisk [Edytuj] ale nie wiem jak to wykonać bo moja propozycja wykonania jest błędna.
"Edycja.php" - to jest formularz do którego chcę wczytać wybrany element. I tutaj również powstaje problem typu: Jak przesłać dane, ale narazie nie zagłębiam sie w ten temat, ponieważ póki nie rozwiąże tego nic wiecej nie ma sensu robić.

Edit: 17:00

Właśnie wpadłem na pomysł,ale nie wiem czy to jest logiczne, aby funkcja [Edytuj] powodowała zapis wybranego elementu do pliku np: edyt.txt i nastepnie formularz uzupełniany byłby za pomocą odczytu z tego pliku. Wtedy moglibyśmy wprowadzić zmiany i zapisać spowrotem do baza.txt. Tylko ze powstałby wtedy problem z tym aby nowa wersja nadpisała starą wersję.
Ponieważ jakbyśmy przy zapisie do "edyt.txt" usunęli jednocześnie nasz wybrany element z bazy to w wypadku awarii utracilibysmy tą daną.

Ten post edytował Krisso 6.01.2008, 17:02:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Krisso
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.12.2007

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


Witam, a ja ciągle z tym samym problemem tutaj tkwie :/
Ogólnie rzecz biorąc dużo mi już nie brakuje, tzn:
baza.txt
Kod
Sienkiewicz Henryk||Pan Wołodyjowski||PWN||1785||45632/75645||powiesc||historyczna||ciekawa
Sienkiewicz Henryk||Potop||PWN||1784||45562/74525||powiesc||historyczna||ciekawa
Sienkiewicz Henryk||Ogniem i Mieczem||PWN||1984||541/53||powiesc historyczna||||fajna

Ps. prosze nie sugerowac sie numerami ISDN, ponieważ w obecnej sytuacji sa to losowo trafione liczby.

edytor.php
  1. <?php
  2. $pole1 = trim($_POST['pole1']);
  3. echo '<form action="" method="post">
  4. <center><strong>Szukany Zwrot : </strong>  <center>
  5. <input type="text" name="pole1" style="width:  130px;" /><br /> <br />
  6. <input type="submit" value="Szukaj" />
  7. <br />
  8. <br />
  9. <hr>
  10. </form>';
  11. $arrFile = file( 'baza.txt' );
  12. for( $i = 0; $i < count( $arrFile ); $i++ )
  13. {
  14. list($autor[$i], $tytul[$i], $wyd[$i],$rw[$i],$isbn[$i],$gat1[$i],$gat2[$i],$opis[$i] ) = explode("||", $arrFile[$i]);
  15. $line = explode( '||', $arrFile[ $i ] );
  16. if( eregi( $pole1, $line[1])||eregi( $pole1, $line[0] ) )
  17. { //Część odpowiedzialna za zapisanie zmian w pliku
  18.  
  19. $nazwa="baza.txt";
  20. $konfiguracja = file_get_contents($nazwa);
  21. $conf=explode("||",$konfiguracja);
  22. "<form action='' method='POST'>
  23. <strong>Autor </strong> : <center><input type='text' name='autor' value='$autor[$i]' style='width: 200px' /><br>
  24. <strong>Tytuł</strong> : <center><input type='text' name='tytul' value='$tytul[$i]' style='width: 200px' /><br>
  25. <strong>Wydawnictwo</strong> : <center><input type='text' name='wyd' value='$wyd[$i]' style='width: 200px' /><br>
  26. <strong>Rok wydania </strong> : <center><input type='text' name='rw' value='$rw[$i]' style='width: 200px' /><br>
  27.  <strong>Numer ISBN </strong> : <center><input type='text' name='isbn' value='$isbn[$i]' style='width: 200px' /><br>
  28. <strong>Gatunek podstawowy </strong> : <center><input type='text' name='gat1' value='$gat1[$i]' style='width: 200px' /><br>
  29. <strong>Gatunek dodatkowy </strong> : <center><input type='text' name='gat2' value='$gat2[$i]' style='width: 200px' /><br>
  30. <strong>Opis </strong> : <center><input type='text' name='opis' value='$opis[$i]' style='width: 350px;'/><br>
  31. <br /><input type='submit' name='submit' value='zapisz' /><br>";
  32. if(isset($_POST['submit']))
  33. {
  34.  // dane pochodzące z formularza
  35. $dane = $autor."||".$tytul."||".$wyd."||".$rw."||".$isbn."||".$gat1."||".$gat2."||".$opis."\n";
  36. // przypisanie zmniennej $file nazwy pliku
  37. $file = "baza.txt";
  38. // uchwyt pliku, otwarcie do dopisania
  39. $fp = fopen($file, "a");
  40. // blokada pliku do zapisu
  41. flock($fp, 2);
  42. // zapisanie danych do pliku
  43. fwrite($fp, $dane);
  44. // odblokowanie pliku
  45. flock($fp, 3);
  46. // zamknięcie pliku
  47. fclose($fp);
  48. echo "<center><strong><p>Dane zostały zapisane!</p><br /></center></strong>";
  49.  
  50. echo  "Edycja książki została zapisana</A>";
  51. }
  52. else
  53. {
  54. echo $form;
  55. }
  56.  
  57. }
  58.  else { ; }
  59. }
  60. ?>

Tak jak jest powyżej zapisany ten program pozwala na wyszukanie odpowiedniego elementu w bazie.
Edycja jest możliwa, lecz z powodu funkcji "eregi" nie dochodzi do zapisu:
Kod
Warning: eregi() [function.eregi]: REG_EMPTY in C:\Program Files\WebServ\httpd\edytor.php on line 24
(6 takich komunikatów jednoczesnie otrzymuje, jeden pod drugim)
Chętnie wysłucham wszelkich porad.
Ps. Nie namawiajcie mnie na sql-a, ponieważ chce ten projekt wykonac tylko na plikach. Nastepny moze zrobie już w bazie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- Krisso   [php]Edycja pliku tekstowego w formularzu.   6.01.2008, 17:01:44
- - dadexix   a czy nie lepiej użyć SQL?   6.01.2008, 17:08:19
- - Krisso   Ogólnie to chcę wszystko stworzyc na plikach, wiem...   6.01.2008, 17:33:54
- - dadexix   no nie wiem... pliki Ci nic nie pomogą w SQL... ja...   6.01.2008, 17:45:51
- - Krisso   Dobra stworzyłem juz formularz który pozwala edyto...   7.01.2008, 11:09:30
- - dadexix   [PHP] pobierz, plaintext <?phpsession_start...   7.01.2008, 14:44:17
- - uli   Poszukaj w necie informacji na temat indeksowania ...   7.01.2008, 14:49:01
- - dadexix   CytatTo podstawa, bo jak na moje, ŻADNE z pól nie ...   7.01.2008, 14:55:07
|- - uli   Cytat(dadexix @ 7.01.2008, 14:55:07 )...   7.01.2008, 14:58:20
|- - mike   Cytat(dadexix @ 7.01.2008, 14:55:07 )...   7.01.2008, 14:59:36
- - dadexix   CytatFormat przede wszystkim zajmuje więcej miejsc...   7.01.2008, 15:10:40
- - Krisso   Nie chce zakładać kolejnego tematu więc spytam sie...   7.01.2008, 18:10:09
- - Lion_87   możesz przesłać w linku   7.01.2008, 18:12:54
- - dadexix   w linku to troche jest... hm.. nie mądre - ogranic...   7.01.2008, 21:07:29
- - phpion   @dadexix odnośnie kluczy głównych Za tworzeniem kl...   7.01.2008, 21:25:20
- - dadexix   a taqk nawiasem... jak się chce plików to może SQL...   7.01.2008, 22:29:45
- - Krisso   Witam, a ja ciągle z tym samym problemem tutaj tkw...   13.01.2008, 02:42:46
- - php newbie   Też przydał by mi się taki edytor mugłby ktoś popr...   23.05.2008, 08:41:58


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: 12.10.2025 - 14:31