Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
dadexix
post
Post #2





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


a czy nie lepiej użyć SQL?
Go to the top of the page
+Quote Post
Krisso
post
Post #3





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

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


Ogólnie to chcę wszystko stworzyc na plikach, wiem że z baza danych byłoby łatwiej, ale ja wolę sobie wszystko troche utrudniać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jak opanuję zasady działania na plikach wtedy ruszę do SQL znając wszystkie kruczki łatwiej będzie mi sie później poruszać w PHP i MYSQL.
Go to the top of the page
+Quote Post
dadexix
post
Post #4





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


no nie wiem... pliki Ci nic nie pomogą w SQL... jak poznasz ogólnie to nie raz przypadkiem poznasz funkcjie która pomoże Ci w innym wypadku.... jeśli tak bardzo chcesz na plikach.. to może lepiej na zserializowanych tablicach? serialize" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
Krisso
post
Post #5





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

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


Dobra stworzyłem juz formularz który pozwala edytować i zapisywać zmiany:

edytor.php
  1. <?php
  2. $nazwa="baza.txt";
  3. $konfiguracja = file_get_contents($nazwa);
  4. $conf=explode("||",$konfiguracja);
  5.  
  6. $form = "<form action='' method='POST'>
  7. <input type='text' name='autor' value='$conf[0]' style='width: 200px' /><br>
  8. <input type='text' name='tytul' value='$conf[1]' style='width: 200px' /><br>
  9. <input type='text' name='wyd' value='$conf[2]' style='width: 200px' /><br>
  10. <input type='text' name='rw' value='$conf[3]' style='width: 200px' /><br>
  11. <input type='text' name='isbn' value='$conf[4]' style='width: 200px' /><br>
  12. <input type='text' name='gat1' value='$conf[5]' style='width: 200px' /><br>
  13. <input type='text' name='gat2' value='$conf[6]' style='width: 200px' /><br>
  14. <input type='text' name='opis' value='$conf[7]' style='width: 350px;'/><br> 
  15. <input type='submit' name='submit' value='zapisz' />";
  16.  
  17. if(isset($_POST['submit'])){
  18.  extract($_POST);
  19.  $autor=StripSlashes($autor);
  20.  $tytul=StripSlashes($tytul);
  21.  $klucz=StripSlashes($wyd);
  22.  $rw=StripSlashes($rw);
  23.  $isbn=StripSlashes($isbn);
  24.  $gat1=StripSlashes($gat1);
  25.  $gat2=StripSlashes($gat2);
  26.  $opis=StripSlashes($opis);
  27.  file_put_contents($nazwa, "$autor||$tytul||$wyd||$rw||$isbn||$gat1||$gat2||$opis");
  28. ?><BR><BR><BR>
  29. <center><strong>
  30. <?
  31.  echo  "Edycja książki została zapisana</A>";
  32. } else{ echo $form; }
  33. ?>

Sprawa polega na tym, że to jest do edycji całego pliku a ja jak miałem problem tak mam z przesłaniem tylko wyszukanego fragmentu.
Proszę o możliwie szybka pomoc, ponieważ na czwartek musze oddać projekt a brakuje mi jeszcze edycji,usuwania i logowania.
Go to the top of the page
+Quote Post
dadexix
post
Post #6





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


  1. <?php
  2. $nazwa="baza.txt";
  3. $konfiguracja = file_get_contents($nazwa);
  4. $conf=explode("||",$konfiguracja);
  5.  
  6. if(isset($_POST['submit'])){
  7. $str= implode("||",$_SESSION['dane']);
  8. $str2 = $_POST['autor']."||".$_POST['tytul']."||".$_POST['wyd']."||".$_POST['rw']."||".$_POST['isbn']."||".$_POST['gat1']."||".$_POST['gat2']."||".$_POST['opis'];
  9. $new = str_replace($str, $str2, $konfiguracja);
  10.  
  11.  
  12.  file_put_contents($nazwa, $new);
  13. ?><BR><BR><BR>
  14. <center><strong>
  15. <?
  16.  echo  "Edycja książki została zapisana</A>";
  17. } else{ 
  18. $_SESSION['dane']['0'] = $conf[0];
  19. $_SESSION['dane']['1'] = $conf[1];
  20. $_SESSION['dane']['2'] = $conf[2];
  21. $_SESSION['dane']['3'] = $conf[3];
  22. $_SESSION['dane']['4'] = $conf[4];
  23. $_SESSION['dane']['5'] = $conf[5];
  24. $_SESSION['dane']['6'] = $conf[6];
  25. $_SESSION['dane']['7'] = $conf[7];
  26.  
  27. $form = "<form action='' method='POST'>
  28. <input type='text' name='autor' value='$conf[0]' style='width: 200px' /><br>
  29. <input type='text' name='tytul' value='$conf[1]' style='width: 200px' /><br>
  30. <input type='text' name='wyd' value='$conf[2]' style='width: 200px' /><br>
  31. <input type='text' name='rw' value='$conf[3]' style='width: 200px' /><br>
  32. <input type='text' name='isbn' value='$conf[4]' style='width: 200px' /><br>
  33. <input type='text' name='gat1' value='$conf[5]' style='width: 200px' /><br>
  34. <input type='text' name='gat2' value='$conf[6]' style='width: 200px' /><br>
  35. <input type='text' name='opis' value='$conf[7]' style='width: 350px;'/><br>
  36. <input type='submit' name='submit' value='zapisz' />";
  37. echo $form;
  38. }
  39. ?>


Jak na moje oko powinno działać... ale już się gubie... w pliku baza masz jedną czy więcej książek? jak pare to tu masz jak sobie z tym poradzić...


  1. <?php
  2. $filename = "file.php"; //TU wpisz nazwe tego pliku - pliku w któreym będzie on wykonywany(jeśli nie jest includowany to daj nazwę tego pliku - jeśli jest daj tego co go includuje!!
  3. $nazwa="baza.txt";
  4. $konfiguracja = file_get_contents($nazwa);
  5. $conf2=explode("\n",$konfiguracja); //rozbijamy baze na książki
  6.  
  7.  
  8. if(isset($_POST['submit'])){
  9. $str= implode("||",$_SESSION['dane']); //łączymy tak by powstało to co mamy w bazie - by wiedzieć co zamienić
  10. $str2 = $_POST['autor']."||".$_POST['tytul']."||".$_POST['wyd']."||".$_POST['rw']."||".$_POST['isbn']."||".$_POST['gat1']."||".$_POST['gat2']."||".$_POST['opis']; //robimy string - co ma powstać w bazie
  11. $new = str_replace($str, $str2, $konfiguracja); //w zmniennej w której są dane(te które były przed operacją) zmieniamy je na to co ma powstać - powstaje nam piękny pliczek
  12.  
  13.  
  14.  file_put_contents($nazwa, $new); //wkładamy do pliku dane
  15. ?><BR><BR><BR>
  16. <center><strong>
  17. <?
  18.  echo  "Edycja książki została zapisana</A>";
  19. } elseif (isset($_GET['id'])){ //jeśli ktoś wybrał edycje
  20. $id = $_GET['id'] - 1; //zmienamy id z geta na o jedno mniejsze -bo zmienne są od zera a nie od jeden
  21. $info = explode("||", $conf2[$id]); //wybraną książkę rozkładamy na czynniki pierwsze - autor itd... 
  22.  
  23. $_SESSION['dane']['0'] = $info[0];
  24. $_SESSION['dane']['1'] = $info[1];
  25. $_SESSION['dane']['2'] = $info[2];
  26. $_SESSION['dane']['3'] = $info[3];
  27. $_SESSION['dane']['4'] = $info[4];
  28. $_SESSION['dane']['5'] = $info[5];
  29. $_SESSION['dane']['6'] = $info[6];
  30. $_SESSION['dane']['7'] = $info[7];
  31. //zapisujemy do sessji to co bylo przed edycją - przyda się przy zmienie danych /
  32. $form = "<form action='' method='POST'>
  33. <input type='text' name='autor' value='$info[0]' style='width: 200px' /><br>
  34. <input type='text' name='tytul' value='$info[1]' style='width: 200px' /><br>
  35. <input type='text' name='wyd' value='$info[2]' style='width: 200px' /><br>
  36. <input type='text' name='rw' value='$info[3]' style='width: 200px' /><br>
  37. <input type='text' name='isbn' value='$info[4]' style='width: 200px' /><br>
  38. <input type='text' name='gat1' value='$info[5]' style='width: 200px' /><br>
  39. <input type='text' name='gat2' value='$info[6]' style='width: 200px' /><br>
  40. <input type='text' name='opis' value='$info[7]' style='width: 350px;'/><br>
  41. <input type='submit' name='submit' value='zapisz' />";
  42. echo $form;
  43. } else {
  44. //wyświetlamy listę książek jakie są w bazie
  45. $starta = 0;
  46. while(isset($conf2[$starta]){
  47. $arr = explode("||",$conf2[$starta]);
  48. $starta++;
  49. echo "<a href='".$filename."?id=".$starta."'>".$arr[0]." - ".$arr[1]."</a><br>";
  50. }
  51. }
  52. ?>



Pewnie nie dziala 50 lini kodu itd.... ale tu już sam kombinuj i napraw:) nie sprawdzałem, pisałem to w oknie szybkiej odpowiedzi:)

Ten post edytował dadexix 7.01.2008, 14:49:03
Go to the top of the page
+Quote Post
uli
post
Post #7





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


Poszukaj w necie informacji na temat indeksowania bazy danych. To podstawa, bo jak na moje, ŻADNE z pól nie wskazuje JEDNOZNACZNIE rekordu.
Po prostu dodaj pole id.

To jest podstawa KAŻDEJ bazy - czy to SQL, czy to opartej na plikach.

Ten post edytował uli 7.01.2008, 14:50:48
Go to the top of the page
+Quote Post
dadexix
post
Post #8





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


Cytat
To podstawa, bo jak na moje, ŻADNE z pól nie wskazuje JEDNOZNACZNIE rekordu.
ale wszystkie razem wskazują chyba co nie? bo to hm... nie mądre by były w bazie 2 identyczne "rekordy"... a tym bardziej w tej bazie - jest ISBN - czy to czasem nie jest unikatowy "id" każdej książki? tak jest to unikatowy id:) http://pl.wikipedia.org/wiki/International...ard_Book_Number
Go to the top of the page
+Quote Post
uli
post
Post #9





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


Cytat(dadexix @ 7.01.2008, 14:55:07 ) *
ale wszystkie razem wskazują chyba co nie? bo to hm... nie mądre by były w bazie 2 identyczne "rekordy"... a tym bardziej w tej bazie - jest ISBN - czy to czasem nie jest unikatowy "id" każdej książki? tak jest to unikatowy id:) http://pl.wikipedia.org/wiki/International...ard_Book_Number


Prawa. Ale szukanie po ISBN w pliku tekstowym (gdzie ISBN nie jest pierwszym rekordem) to trochę szaleńcze:) Nie uważasz?

Niemniej zwracam honor - jest to jakiś klucz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mike
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(dadexix @ 7.01.2008, 14:55:07 ) *
(...) w tej bazie - jest ISBN - czy to czasem nie jest unikatowy "id" każdej książki? tak jest to unikatowy id:) http://pl.wikipedia.org/wiki/International...ard_Book_Number
To nic nie zmienia. Przykładowy format takiego numeru to 0-306-40615-2
Format przede wszystkim zajmuje więcej miejsca i jest dużo bardziej uciążliwy dla systemów informatycznych. Gwarantuję Ci że zapytanie będę szybciej działać jeśli kluczem głównym będzie sztucznie wprowadzony indeks numeryczny.
Nazwa takiego klucza to surrogate key, inaczej mówiąc - klucz sztuczny.
Go to the top of the page
+Quote Post
dadexix
post
Post #11





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


Cytat
Format przede wszystkim zajmuje więcej miejsca i jest dużo bardziej uciążliwy dla systemów informatycznych.
no ale ten ciąg był i będzie - jest potrzebny autorowi... a powiedz mi co zajmuje więcej miejsca... "UNIKALNE_ID||[....]||0-306-40615-2"(UNIKALNE ID - nasze id, [...] - reszta danych - autor, nazwa itd.) czy "[....]||0-306-40615-2"


Robienie tego na plikcah to chyba nie zbyt dobry pomysł tak czy tak... ale jak już się chce na plikach to chyba najlepiej ograniczyć ilość danych w pliku do minimum nie?

Ale ja się kłócić nie chce, jesteś napewno lepszy w temacie więc pewnie masz racje... czy Krisso wprowadzi te ID czy nie - jego wybór:)
Go to the top of the page
+Quote Post
Krisso
post
Post #12





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

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


Nie chce zakładać kolejnego tematu więc spytam sie tutaj jak przesłać zmienną z jednego pliku do drugiego tzn.
zmiennaz pliku "edycja.php" i chciałbym ją odczytać na samym początku w "edytor.php", dlatego sie ptam czy istnieje tak możliwość (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
A jeśli tka to proszę o małe wskazanie kierunku w którym miałbym się poruszać.
Go to the top of the page
+Quote Post
Lion_87
post
Post #13





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


możesz przesłać w linku
Go to the top of the page
+Quote Post
dadexix
post
Post #14





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


w linku to troche jest... hm.. nie mądre - ograniczona długość... zalecam sessje albo post:)
Go to the top of the page
+Quote Post
phpion
post
Post #15





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@dadexix odnośnie kluczy głównych
Za tworzeniem kluczy głównych jako pole liczb całkowitych (nawet w przypadku jeśli równie dobrze może być to numer ISBN) przemawiają 2 przesłanki:
- wyszukiwanie po kluczach numerycznych jest zdecydowanie bardziej wydajne (szybsze) niż po kluczach znakowych; straty poniesione w wyniku dodania nowej (teoretycznie zbędnej) kolumny zostają wynagradzane wzrostem wydajności
- utworzenie takiej kolumny dodaje faktyczny identyfikator dla rekordu. To co teraz napiszę nie jest moim wymysłem, tylko zostało przedstawione na zajęciach w firmie Kamsoft (duża firma operująca na komercyjnych wersjach Oracle - więc nie w kij pierdział). Argumentem przemawiającym za wprowadzeniem takiego klucza jest fakt, iż mimo wszystko może się zdażyć duplikacja numeru ISBN. W Kamsofcie zdarzały się przypadki osób o taki samych numerach PESEL - niby nieprawdopodobne ale jednak... i wtedy robi się kupka. Albo wyobraź sobie sytuację, że musisz powiązać tabelę główną z innymi tabelami; dodajesz wtedy do nich klucze obce będące numerem ISBN. No i fajnie. Ale co w przypadku gdy po np. miesiącu zauważysz, że się machnąłeś? Wtedy trzeba poprawiać ISBN wszędzie.

id rulez!

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dadexix
post
Post #16





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


a taqk nawiasem... jak się chce plików to może SQL lite? też plik (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Krisso
post
Post #17





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
-php newbie-
post
Post #18





Goście







Też przydał by mi się taki edytor mugłby ktoś poprawi tamten kod lub podać poprawny bo nie da się tu połapać (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Go to the top of the page
+Quote Post

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: 20.09.2025 - 04:03