Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zwiększanie wartości
kirov
post 30.03.2003, 16:48:06
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
Go to the top of the page
+Quote Post
DeyV
post 30.03.2003, 18:55:59
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..."
Go to the top of the page
+Quote Post
mazy
post 3.04.2003, 15:45:01
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 tongue.gif ( w pisownii smile.gif )
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: 19.07.2025 - 04:13