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: 14 let
|
0