Autor | Zpráva | ||
---|---|---|---|
PeTo Profil * |
#1 · Zasláno: 16. 4. 2012, 21:16:21
prosím o radu, rozdělím pomocí explode hodnoty z jedné bunky a chtěl z těchto hodnot vyhledat v další tabulce.
mám tento kod, ale nevím jak pokračovat dál. <?php $trate = explode(',', $row[trate]); $i=0; foreach($trate as $km) { if($i != 0) { $km; } $i++; echo "$km"; }?> |
||
Tori Profil |
#2 · Zasláno: 16. 4. 2012, 21:46:11
Na první pohled to vypadá na špatný návrh DB. Místo sloupečku s opakovanými hodnotami by měla být další tabulka. Můžete sem dát strukturu obou tabulek?
|
||
PeTo Profil * |
#3 · Zasláno: 16. 4. 2012, 22:16:35
Návrh db je takový
první tabulka je s názvem závodu, místem a tratěmi(těch tratí je až 10 a můžou být stejné) takže v prvni tabulce zapíšu do sloupce tratě až všech 10 tratí, poté je hodnoty ve sloupci rozdělím a zjistím v další tabulce z těchto hodnot delku tratě pro věkovou kategorii. mělo by to pak vypadat asi takto: Praha, maraton 16.4.2012 5km žáci, 10km dospělí atd. |
||
Šéva Profil * |
#4 · Zasláno: 19. 4. 2012, 09:37:29
Ahoj,
nedokážu si to uplně moc přesně představit,ale zkus něco takovéhle <?php $dotaz=mysql_query("select * from tabulka_jedna"); while($row=mysql_fetch_array($dotaz)) { $trate = explode(',', $row[trate]); for($i=0;$i<count($trate);$i++) { $dotaz2=mysql_query("select * from tabulka_druha where sloupec like '%$trate[$i]%'"); while($vysledek=mysql_fetch_array($dotaz2)) { echo "$vysledek[hodnota1], $vysledek[hodnota2]<br>"; } } } kod si kdyžtak upravte dle potřeby,ale jak jsem již psal, z toho zadání nejsem uplně moc extra moudrý, kdyby byli nějaké záznamy z DB nebo jak to v té DB alespoň vypadá, bylo by to lepší :) |
||
panther Profil |
PeTo:
od toho kódu v [#4] radši ruce pryč, vydej se cestou, kterou naznačila Tori. Dvě tabulky, které budou vypadat nějak takto: tabulka zavod id | nazev | misto | datum (date) 1 | maraton | Praha | 2012-04-12 2 | maratonek | Brno | 2012-05-01 tabulka trate id | zavod_id | nazev 1 | 1 | žáci 5km 2 | 1 | dospělí 10km 3 | 1 | ženy 8km 4 | 2 | žáci 6km 5 | 2 | dospělí 42km |
||
Šéva Profil * |
#6 · Zasláno: 19. 4. 2012, 11:22:17
panther:
v tomto případě se pak dá udělat i jednoduchej sql příkaz na výpis $dotaz=mysql_query("select a.id,a.nazev,a.misto,a.datum,b.zavod_id,b.nazev as nazev2 from zavod a, trate b where a.id=b.zavod_id"); while($vysledek=mysql_fetch_array($dotaz)) { echo "$vysledek[nazev] - $vysledek[misto] - $vysledek[datum] - $vysledek[nazev2]<br>"; } |
||
Časová prodleva: 12 let
|
0