Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zwiększanie wartości
Forum PHP.pl > Forum > PHP
kirov
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
DeyV
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
mazy
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 )
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.