Autor | Zpráva | ||
---|---|---|---|
Apacuka Profil |
Zdravím,
prosím o radu. Zkouším db v souborech, ale nemůžu přijít jak propojit 2 tabulky. table1: lide.txt id|jmeno --+----- 1 |Pepa 2 |Karel 3 |Jan table2 mesta.txt id|lide.id|jmeno --+-------+----- 1 |3 |Brno 2 |1 |Mikulov 3 |3 |Ostrava Požadovaný výsledek výpisu tabulky mesta: id|lide.id|jmeno --+-------+----- 1 |Jan |Brno 2 |Pepa |Mikulov 3 |Jan |Ostrava Města vypíši takto, jen už nevím jak to spárovat, aby se za lide.id dosadilo správné jméno. function zobrazmesta() { $filenamem = 'mesta.txt'; if (file_exists($filenamem)) { $filem = file($filenamem); foreach ($filem as $single_line) { $mesta = explode('|', $single_line); echo "id: $mesta [0]<br> jmeno: $mesta [1]<br> mesto: $mesta [2]"; }}} V mysql by to bylo jednodušší, ale o to tu nejde. SELECT * FROM $mesta m LEFT JOIN $lide u ON m.user_id = u.id Děkuji za odpověď. |
||
Tori Profil |
#2 · Zasláno: 20. 10. 2012, 09:03:53
Pro každý řádek ze souboru s městy se musí projít všechny řádky v souboru s lidmi (resp. vše o začátku do první shody).
Aby dávalo smysl vůbec pojmenovávat sloupce v "tabulce", tak by se spíš měly z prvního řádku načíst názvy sloupců, a pak u každého dalšího řádku nejdřív vytvořit asoc.pole (podobné tomu, co vrací mysql_fetch_array) a pak teprv porovnávat už pojmenované sloupce. Vzhledem k možnému výskytu svislítka v řetězci bych asi radši použila jiný oddělovač (např. Record separator, 0x1E ) anebo jiný formát (např. CSV), pokud byste chtěl ukládat víceřádkové texty tak by musel řádek končit ještě nějakým jiným spec. znakem kromě LF (např. Group separator, 0x0D ).
|
||
Apacuka Profil |
Sloupce nepojmenovávám, tu je to jen jako příklad.
Obsah souborů je v tomto tvaru. 1|3|Brno 2|1|Mikulov 3|3|Ostrava S tím svislítkem nebude problém, ale ten trojůhelník taky nevypadá špatně :) |
||
Apacuka Profil |
#4 · Zasláno: 20. 10. 2012, 16:59:13
Škoda že pracování se souborama je těžší než s sql :(
|
||
Tori Profil |
#5 · Zasláno: 20. 10. 2012, 17:24:26
Jestli to zkoušíte kvůli tomu, že na serveru nemůžete použít MySQL, tak existuje i SQLite, která ukládá data do souborů, ale normálně se jí můžete ptát SQL jazykem. (Ale jsou tam nějaké odlišnosti od MySQL)
|
||
Apacuka Profil |
Moc díky za info.
Už jsem se na to koukal, a vypadá to celkem slibně. |
||
Časová prodleva: 12 let
|
0