Autor | Zpráva | ||
---|---|---|---|
Lum Profil * |
#1 · Zasláno: 26. 10. 2012, 20:57:48
Zdravím,
mám menší problém s tím, jak vytvořit příkaz, aby vše správně fungovalo. Poradí mi někdo? :) Mám databázi, kde se nachází dvě tabulky (zastavky,linky) není problém nechat vyspat veškeré informace z tabulky zastávky. Tabulka obsahuje jen dané názvy. Takže udělám $vysledek=mysql_query("select * from zastavky"); while ($zaznam=MySQL_Fetch_Array($vysledek) Druhá tabulka obsahuje seznam linek a ke každé lince zastávky, které projíždí. Já potřebuju do seznamu zastávek napasovat příkaz, který u každé zastávky vypíše linky, které danou zastávkou projíždí. Lze na to použít inner join, nebo je to třeba udělat jinak, případně jak? Stokrát díky ;) |
||
panther Profil |
#2 · Zasláno: 26. 10. 2012, 21:47:03
Lum:
tabulky se musí joinovat, ano. „Tabulka obsahuje jen dané názvy.“ ještě by měla obsahovat id zastávky, v druhé tabulce pak budeš mít něco jako: linka | id_zastavky 1 | 1 1 | 5 1 | 38 1 | 2 ... 2 | 2 |
||
Lum Profil * |
#3 · Zasláno: 26. 10. 2012, 22:16:34
Ono je to krapet složitější. Je nutno uchovat pořadí zastávek, takže každá linka má v poli zastavky řetězec zastávek.
Např. 1 Tabulový vrch - Karafiátová - Jílová - .... Zastávky samozřejmě id mají (ale v tomto to nehraje roli). Jde mi o to, jak to naroubovat, protože ať dělám, co dělám, tabulka mi nevypisuje žádnou hodnotu. |
||
Tori Profil |
#4 · Zasláno: 27. 10. 2012, 09:54:38
Lum:
„nebo je to třeba udělat jinak, případně jak?“ Nevhodně navržená DB, v jednom poli má být jen jeden údaj (= jedna zastávka), jinak se s tím nedá rozumně pracovat. tabulka zastavky: ID, název tabulka linky: ID, číslo linky, případně rozlišení tramvaj|trolejbus|zubačka|drožka... spojovací tabulka zastavky_linek: ID zastávky, ID linky, pořadí zastávky na trase. Primární klíč přes oba sloupce ID zastávky+linky. |
||
Časová prodleva: 11 let
|
0