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