Autor Zpráva
Cup
Profil
Takže ... vybafl sem na vas s takovým dlouhým kódem ale toho si vubec nevšímejte ... je to jen abyste pochopili problém

když se podíváte na dotaz ... tak vidíte že mám v db uložený tým_a a tým_b pod id ... a podle id pak vypisuju nazvy tech týmů ... ale je problem v tom že jeden tým dám dohromady jak vidíte ... že ho z toho dotazu nějak dostanu ...

ale druhý tým vypisuji pomocí mysql_result když si vytáhnu pomocí id_tymu_b nazev toho tymu .... no snad zatim chapete ... ale zda se mi to docela blby ... protože při každém opakování cyklu se mi to táže na databazi na ten nazev tymu tak sem se vás chtel zeptat zda to nejde udelat i jinak ... jako ten dotaz ... nejak optimalizovat abych se to furt neptalo na db ... :) dekuji snad jste pochopili ...

        $dotaz2 = mysql_query ("SELECT zapasy.id_zapas, zapasy.kolo_zapas, zapasy.sezona_zapas, zapasy.team_a_zapas, zapasy.vysl_a_zapas,"
                             ."	zapasy.team_b_zapas,	zapasy.vysl_b_zapas,	zapasy.vysledek_zapas,	za pasy.datum_zapas, tymy.nazev_team, sezona.rok_sez"
                             ." FROM zapasy, tymy, sezona"
                             ." WHERE zapasy.team_a_zapas = tymy.id_team AND zapasy.sezona_zapas = sezona.id_sez AND zapasy.vysledek_zapas is NULL AND sezona.active_sez = 'true'"
                             ." ORDER BY zapasy.id_zapas DESC"
                            , $spojeni);
         if(!$dotaz2){showerror();}
?>
           <table id="vypis_cl" border="0">
             <tbody>
               <tr>
                 <th>Id</th>
                 <th>Kolo</th>
                 <th>Domácí</th>
                 <th>Výsl. A</th>
                 <th> : </th>                 
                 <th>Výsl. B</th>                 
                 <th>Hosté</th>
                 <th>1. tř.</th>
                 <th>2. tř.</th>
                 <th>3. tř.</th>                 
                 <th>Ulož</th>
               </tr>
             </tbody> 
<?php       $pocet = "0"; 
             while($row=mysql_fetch_array($dotaz2))
             {
           $upravdatum["datum"] = $row["datum_zapas"];
           $upravdatum["datum"] = substr($upravdatum["datum"], 8, 2) . "-" .
                                         substr($upravdatum["datum"], 5, 2) . "-" .   
                                         substr($upravdatum["datum"], 0, 4);
         echo " <tr class=\"".(($pocet++ % 2)? "suda" : "licha")."\">";  // barav radku ...?>  
                 <form action="<?php echo $pred_link; ?>insert" method="post">
                 <td><?php echo $row["id_zapas"];?></td>
                 <td><?php echo $row["kolo_zapas"];?></td>
                 <td><?php echo $row["nazev_team"];?></td>                 
                 <td>
<?php               echo"\n              <select name=\"vyslA\" >";
               for($i=0;$i<=20;$i++)
                { 
                echo "\n                <option value='".$i."'>".$i."</option>";
                }
               echo"\n              </select>"; 
?>               </td>
                 <td> : </td>
                 <td>
<?php               echo"\n              <select name=\"vyslB\" >";
               for($i=0;$i<=20;$i++)
                { 
                echo "\n                <option value='".$i."'>".$i."</option>";
                }
               echo"\n              </select>"; 
?>               </td>  
                 <td><?php echo mysql_result(mysql_query("SELECT tymy.nazev_team FROM tymy WHERE tymy.id_team = '".$row["team_b_zapas"]."' LIMIT 1"),"nazev_team");?></td>                 
<?php if($row["team_a_zapas"] == $hl_team OR $row["team_b_zapas"] == $hl_team) {?>
                 <td><input type="text" name="tr_1" value="(:)" size="3"/></td>
                 <td><input type="text" name="tr_2" value="(:)" size="3"/></td>
                 <td><input type="text" name="tr_3" value="(:)" size="3"/></td>
<?php } else {?>
                 <td></td>
                 <td></td>
                 <td></td>                 
<?php } ?>
                 <td>
                     <input type="hidden" name="id_sezona" value="<?php echo $row['sezona_zapas'];?>" />    
                     <input type="hidden" name="id_zapas" value="<?php echo $row['id_zapas'];?>" />
                     <input type="hidden" name="tymA" value="<?php echo $row['team_a_zapas'];?>" />
                     <input type="hidden" name="tymB" value="<?php echo $row['team_b_zapas'];?>" />
                     <input type="submit" name="odeslat" value="Ulož" />
                   </form>
                 </td>
               </tr>
<?php        }
        echo "           </table>\n"; 
Taps
Profil
Cup
nechceš ten dotaz převést na join, ta orientace je v tom docela hrůza
Cup
Profil
ano klidně taky se nevyznávám ale s JOIN neumim :( kdyz mi to prevedes a torchu vysvetlis co kam tak to bude dobre :)
nightfish
Profil
kdyz mi to prevedes a torchu vysvetlis co kam tak to bude dobre
trochu snahy by neškodilo

http://www.linuxsoft.cz/article.php?id_article=827
http://www.linuxsoft.cz/article.php?id_article=837
http://www.linuxsoft.cz/article.php?id_article=841
http://www.linuxsoft.cz/article.php?id_article=854

jinak ještě taková drobnost
$pocet = "0";
proč do $pocet přiřazuješ řetězec, když pak do proměnné přičítáš čísla? testuješ funkčnost implicitního přetypování? ;-)
Cup
Profil
nightfish jajaj .. $pocet = "0"; jasny kravovina .... ne nic sem nechtel testovat ... ok ... proctu ... treba to pomuze ale nevim zda to s tim zvladnu ... :-)
nightfish
Profil
jinak k řešení tvého problému... bude to chtít ještě jeden join na tabulku tymy (pojmenovanou nějakým aliasem), spojení zapasy.tym_b_zapas = t.id_team
Cup
Profil
ja vim no ... ze to neco takovyho bude chctit ... sem na intru a doma mam sql ucebnici tak to do vikendu odlozim ... a nejak to skusim zmáknout :) diky nightfish
nightfish
Profil
mohlo by to být nějak takhle...

SELECT zapasy.id_zapas, zapasy.kolo_zapas, zapasy.sezona_zapas, zapasy.team_a_zapas, zapasy.vysl_a_zapas, zapasy.team_b_zapas, zapasy.vysl_b_zapas, zapasy.vysledek_zapas, zapasy.datum_zapas, t1.nazev_team nazev_a, t2.nazev_team nazev_b, sezona.rok_sez

FROM zapasy, tymy t1, tymy t2, sezona

WHERE zapasy.team_b_zapas = t2.id_team AND zapasy.team_a_zapas = t1.id_team AND zapasy.sezona_zapas = sezona.id_sez AND zapasy.vysledek_zapas is NULL AND sezona.active_sez = 'true'

ORDER BY zapasy.id_zapas DESC


a pak při výpisu $row["nazev_a"] a $row["nazev_b"]
Cup
Profil
nightfish
díku dík ... :) je to funkční doucim se to s join abych se priste nemusel ptat ... zatim ahoj/naschle...

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: