![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 23.03.2003 Skąd: Lubartów ! Ostrzeżenie: (0%) ![]() ![]() |
Mam bazę danych txt:
baza.txt: 01||Nazwa||Jakaś Treść||Kolejna Treść||1 02||Nazwa||Jakaś Treść||Kolejna Treść||3 03||Nazwa||Jakaś Treść||Kolejna Treść||8 $baza = file("baza.txt"); $linia = "2"; $wartosc = explode("||", $baza[$linia]); Jak zwiększyć wartość w lini $linia dla 3 tzn. $wartosc[4] i dopisać do bazy danych Czy zwiększyć można w ten sposób $wartosc[4]++; ? A jak później zapisać zwiększoną wartość do baza.txt ? Chodzi mi o to aby zapisać wartość w wybranym miejscu i lini nie zmieniając pozostałych wartości. Pomóżcie, prosze Pozdrawiam, Kirov |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Niestety, ale z plikami jest taki problem, że, przynajmniej zazwyczaj, aby zmodyfikować jakieś dane, należy odczytać wszystkie dane z całego pliku, odpowiednio je zmodyfikować, i wszystkie zapisać do wyczyszonego uprzednio pliku.
Niestety, jest to proces powolny, stąd wiele skryptów text-bazodanowych korzysta z całkiem skomplikowanych systemów indeksowania plików, oznaczania kolejnych wierszy, czyli np. zamiast usuwać wiersz, oznaczasz go jako skasowany itp. Nie jest to jednak wcale proste... Jeżeli jednak temat Cię zaciekawił, polecam: http://sourceforge.net/projects/textdb -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 4 Dołączył: 12.03.2003 Skąd: Suwałki Ostrzeżenie: (0%) ![]() ![]() |
e tam,
poprostu robisz tak: [php:1:e085b5ed60]<?php $f=fopen("baza.txt", "r"); $baza = file("baza.txt"); $linia = "2"; $count=count($baza); for($i=0;$i<$count;$i++){ $wartosc = explode("||", $baza[$i]); if($wartosc[1]==$linia){ $wartosc[4]++; $tmp= $wartosc[0].$wartosc[1].$wartosc[2].$wartosc[3].$wartosc[4]; fputs($f, $tmp."n"); }else{ fputs($f, $baza[$i]); } fclose($f); ?>[/php:1:e085b5ed60] mniej więcej ps. tutaj może być jakiś error ![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 04:13 |