Autor Zpráva
PeTo
Profil *
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
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 *
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 *
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 *
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>";
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: