| Autor | Zpráva | ||
|---|---|---|---|
| TrueFriend Profil |
#1 · Zasláno: 8. 5. 2010, 01:50:20
Zdravím. Potřeboval bych poradit.
Mám .txt soubor a chtěl bych do něj pomocí PHP zapsat data v následujícím tvaru: ;id;name;lastname;count;maxcount; Samotný zápis všech hodnot najednou není problém, ale vůbec netuším jak udělat, aby mi PHP upravilo jen jednu hodnotu mezi středníky. Například abych udělal z: ;128;Ales;Pokorny;5;10; toto: ;128;Ales;Ostry;5;10; Možná je to začátečnický dotaz, ale přesto si s tím nevím rady. Díky |
||
| Havel-st Profil * |
#2 · Zasláno: 8. 5. 2010, 07:43:36
Rozdělil bych řádek pomocí explode() na středníky a potřebné hodnoty hodil do value inputů formuláře.
Pak už jen poskládat řádek a odeslat k zápisu, třeba na vrchu stránky v podmínce: když isset($_POST['name']). |
||
| AM_ Profil |
#3 · Zasláno: 8. 5. 2010, 11:32:10
vřele doporučuji naučit se pro ukládání tabulkových dat používat MySQL, není to těžké a je to mnohem efektivněší.
|
||
| TrueFriend Profil |
#4 · Zasláno: 8. 5. 2010, 17:03:37
Také bych to raději řešil přes databázi. Ale na poli databází se zatím neorientuji.
Vím, že téma databází se tu probírá jinde, ale i přesto... mohl bych poprosit někoho, zdali by mi dal nějaký nástřel toho, jak by takový zápis který by umožňoval to co řeším umožňoval? Na internetu je spousta how-to, ale i přesto jsem princip fungování databáze nepochopil / to co jsem našel tak jsem to z toho nepochopil, ale přikládám to spíše k tomu, že jsem spíše špatně hledal :) Díky Co se týká PHP, tak jsem si poradil následovně: $file="test.txt";
$fp = fopen($file, "a");
fclose($fp);
$fc = fopen($file, "r");
$line_of_text = fgets($fc);
list($home, $id, $rokcr, $mesiccr, $dencr, $hodinacr, $minutacr, $vterinacr, $name, $count, $maxcount, $maxcountauto, $sendfrom, $sendto, $regip, $sendtomsg, $sendtomsgauto, $size, $limited, $end) = split(";",$line_of_text);
$count = $count+1;
echo $id." , ".$rokcr."-".$mesiccr."-".$dencr." - ".$hodinacr.":".$minutacr.":".$vterinacr." , ".$name." , ".$count." , ".$maxcount." , ".$maxcountauto." , ".$sendfrom." , ".$sendto." , ".$regip." , ".$sendtomsg." , ".$sendtomsgauto." , ".$size." , ".$limited;
$f=fopen($file,"w");
$str_new = $home.";".$id.";".$rokcr.";".$mesiccr.";".$dencr.";".$hodinacr.";".$minutacr.";".$vterinacr.";".$name.";".$count.";".$maxcount.";".$maxcountauto.";".$sendfrom.";".$sendto.";".$regip.";".$sendtomsg.";".$sendtomsgauto.";".$size.";".$limited.";".$end;
fwrite($f,$str_new);
fclose($f);Což funguje naprosto dokonale dle mých potřeb, ale jak říkám raději bych to řešil přes tu databázi, pokud by někdo poradil :) |
||
| AM_ Profil |
#5 · Zasláno: 8. 5. 2010, 17:11:21
TrueFriend:
„Také bych to raději řešil přes databázi. Ale na poli databází se zatím neorientuji.“ s MySQL se naučíš rychleji, než vyřešíš dva problémy podobné tomuto při práci se soubory. Zkus to tady - články 34-48. Nástin:
//vytvoreni tabulky (nejlepe v phpMyAdminu):
CREATE TABLE users(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(40),
lastname VARCHAR(40),
count INT,
maxCount INT,
PRIMARY KEY(id)
);
//ulozeni do mysql:
mysql_query("INSERT INTO users (name, lastname, count, maxcount) VALUES ('Jan', 'Novak', 0, 0)");
//aktualizace:
mysql_query("UPDATE users SET count=count+1 WHERE id=5");
//precteni:
$data = mysql_querySELECT name, lastname, count FROM users ORDER BY lastname");
while ($row = mysql_fetch_assoc($data)){
echo "{$data['name']} {$data['lastName']} - {$data['count']}<br>";
}
|
||
| TrueFriend Profil |
#6 · Zasláno: 8. 5. 2010, 17:17:38
díky, vážně to nevypadá složitě :) zkusím to
|
||
|
Časová prodleva: 16 let
|
|||
0