Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Płaska baza danych, Edycja rekordów
kanwilu
post 24.05.2005, 12:09:23
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.05.2005

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


Witam!
Mam problem z edycja rekordów .
Dajmy na to mam baze.txt a w niej:

Cytat
Krzysiek|&&|24 marca 2001|&&|Bardzo fajna strona|&&|krzysiek@przyklad.pl
Bartek|&&|26 marca 2001|&&|Ciekawy serwis ... |&&|bartek@przyklad.pl
Ania|&&|28 marca 2001|&&|Interesująca witryna|&&|ania@przyklad.pl

Dorota|&&|5 maja 2001 r.|&&|Bardzo fajna witryna ...|&&|dorota@przyklad.pl



Teraz dajmy na to, że chce edytować tylko np. rekodr, gdzie jest imie Ania (zmienić na jakieś inne ).

Jak to zrobić z poziomu przęgladarki, główkuje nad kodem, ale nic sensownego mi do głowy nie przychodzi...
Z góry dzia Rkingsmiley.png

Ten post edytował kanwilu 24.05.2005, 12:09:58
Go to the top of the page
+Quote Post
SongoQ
post 24.05.2005, 12:27:36
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


uzyj funkcji explode, raz do dzielenia na rekordy a 2 raz do podzielenia na pola.


--------------------
Go to the top of the page
+Quote Post
kanwilu
post 24.05.2005, 13:06:07
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.05.2005

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


Z tym nie ma problemu (z podziałem na rekordy), ale jak się dobrać do tych rekordów (czyt. edytować je?).
Go to the top of the page
+Quote Post
revyag
post 24.05.2005, 13:10:11
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Wrzuć je sobie w jakiś formularz. Np pole input albo textarea.


--------------------
-------------

------
Go to the top of the page
+Quote Post
strife
post 24.05.2005, 13:12:35
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


questionmark.gif
  1. <?php
  2.  
  3.  
  4. $string = 'user|dane|id|time';
  5.  
  6. $s = explode('|', $string);
  7. foreach($s as $n => $da)
  8. {
  9.  
  10.  if ($n == 1) // ktore pole chcemy edytowac
  11.  {
  12.  
  13.  $da = 'dane trala'; // zamina dane na to.
  14.  
  15.  }
  16.  
  17.  $array[] = $da; // nadpisanie calosci w tabeli
  18.  
  19. }
  20. print_r($array);
  21.  
  22. ?>


--------------------
Go to the top of the page
+Quote Post
kanwilu
post 24.05.2005, 13:20:15
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.05.2005

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


Niestety ja mam plik oddzielny.Skrypt jest oddzielony od bazy: skrypt.php, baza.txt . Tutaj jest właśnie sęk...
Mimo wszystko dzięki za pomoc biggrin.gif
Go to the top of the page
+Quote Post
strife
post 24.05.2005, 13:22:43
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(kanwilu @ 2005-05-24 14:20:15)
Niestety ja mam plik oddzielny.Skrypt jest oddzielony od bazy: skrypt.php, baza.txt . Tutaj jest właśnie sęk...
Mimo wszystko dzięki za pomoc biggrin.gif

Tak więc odczytaj plik baza.txt przez fopen" title="Zobacz w manualu PHP" target="_manual, fread" title="Zobacz w manualu PHP" target="_manual, a potem go robij przez explode" title="Zobacz w manualu PHP" target="_manual
questionmark.gif


--------------------
Go to the top of the page
+Quote Post
kanwilu
post 24.05.2005, 13:26:27
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.05.2005

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


Właśnie tak się starałem robić. Pamiętajmy jednak, że chce edytować tylko jeden rekord, więc nie bardzo wiem jakie dać atrybuty przy otwarciu. Musi w końcu zamienić ten jeden atrybut. NIe może skasować innych rekordów w bazie.

P.S. Eh jaki ja jestem męczący tongue.gif
Go to the top of the page
+Quote Post
SongoQ
post 24.05.2005, 13:37:25
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Otwierasz plik,
blokujesz,
ladujesz do tablicy,
modyfikujesz,
zwalniasz i zamykasz


--------------------
Go to the top of the page
+Quote Post
kanwilu
post 24.05.2005, 14:23:20
Post #10





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.05.2005

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


Ech nie o to pewnie chodziło...No nie wiem jak to zrobić....Kombinuje, narazie wymyśliłem coś takiego:

  1. <?php
  2.  
  3. $plik = fopen(&#092;"dane.txt\", \"a+\");
  4. flock($plik,2);
  5.  
  6. $string = file(&#092;"dane.txt\");
  7.  
  8. $s = explode('|&&|', $string);
  9. foreach($s as $n => $da)
  10. {
  11.  
  12. if ($n == 1) // ktore pole chcemy edytowac
  13. {
  14.  
  15.    $da = 'dane trala'; // zamina dane na to.
  16.    
  17. }
  18.  
  19. $array[] = $da; // nadpisanie calosci w tabeli
  20.  
  21. }
  22. print_r($array);
  23.  
  24. fputs($plik, $da); 
  25. flock($plik,3);
  26. fclose($plik);
  27.  
  28.  
  29. ?>


Ten post edytował kanwilu 24.05.2005, 14:51:00
Go to the top of the page
+Quote Post
nospor
post 24.05.2005, 14:28:29
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




file zwraca tablicę nie string. W tablicy są kolejne wiersze z pliku
  1. <?php
  2.  
  3. $ar=file('jakisplik');
  4. foreach ($ar as $line)
  5. {
  6. //w $line masz pojedynczą linię. rób se teraz co chcesz
  7. }
  8.  
  9.  
  10. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kanwilu
post 24.05.2005, 15:14:50
Post #12





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.05.2005

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


$string to nazwa tylko zmiennej...
Go to the top of the page
+Quote Post
nospor
post 24.05.2005, 15:18:59
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
$string to nazwa tylko zmiennej...
Aż tak tepy to nie jestem. Tylko że ty potem robisz explode na tej zmiennej, któa jest tablicą. Explode robi sie na stringu a nie na tablicy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kanwilu
post 24.05.2005, 16:39:08
Post #14





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.05.2005

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


Poradziłem sobie innaczej.
Teraz moge edytować baze.txt po przez formularz.
To nie jest to co chciałem osiągnąć, ale nie jest źle.
Mimo wszystko dziękuje za pomoc, dziś jakoś przez tą pogode nie tryskam pomysłami tongue.gif.
Pozdro!!!

P.S. Nospor sorry, dziś jakoś przymulony jestem od tych tabletek od grypy.
Masz racje i tak można smile.gif

Ten post edytował kanwilu 24.05.2005, 16:40:53
Go to the top of the page
+Quote Post
dr_bonzo
post 24.05.2005, 17:29:50
Post #15





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Musisz uwazac zeby ci nikt nie wpisal do tresci/nicka/itd. TABULATORA i ENTERA -- bo ci sie baza rozepsuje.

PS. A czemu nie SQL?questionmark.gif


PS6: TABLUCATORA -- heh biggrin.gif

Ten post edytował dr_bonzo 24.05.2005, 20:15:03


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
SongoQ
post 24.05.2005, 19:47:00
Post #16





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Wydaje mi sie ze bez szczegolowej walidacji i tak sie ta bazka w pliku kiedys rozleci.

Tez sie zastanawialem dlaczego nie moze uzywac SQLa, jesli chodzi o € to bym polecal SQLite.


--------------------
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:55