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