Autor | Zpráva | ||
---|---|---|---|
quickspider Profil |
#1 · Zasláno: 16. 6. 2011, 14:24:00
chtěl bych poprosit, jestli by mi někdo neporadil, proč se cyklus vykoná jen jednou?
Není problém s označenou proměnou v dotazu? define ("COLS", 4); $dotaz = 'SELECT serie, slozka FROM kinder join k_rok using(serie) where rok=2010 group by serie'; $vysledek = mysql_query($dotaz); while ($serie = mysql_fetch_array($vysledek)) { $dotaz2 ="SELECT figurka FROM kinder where serie='$serie[serie]' order by figurka"; $vysledek = mysql_query($dotaz2); if ($vysledek) { echo '<div class="titulek"><b>'.$serie['serie'].'</b></span></div>'; echo "<table align='center'>\n"; } else { echo "chyba dotazu"; } for ($i = 0; $dotaz = mysql_fetch_assoc($vysledek); $i++) { if ($i % COLS == 0) echo "<tr>\n"; echo '<td align="center"><img src="obr/'.$serie['slozka']; $zmena=a($dotaz['figurka']); echo '/'.$zmena.'.gif" alt="'.$dotaz["figurka"].'"><br><center>'.$dotaz["figurka"]."</center></td>\n"; if ($i % COLS == COLS - 1) echo "</tr>\n"; } if ($i != COLS - 1) { while ($i++ % COLS != 0) { echo "<td> </td>"; } echo "</tr>\n"; echo "<tr>\n"; } echo "</table>\n"; |
||
YoSarin Profil |
#2 · Zasláno: 16. 6. 2011, 14:31:12
quickspider:
Protože recykluješ proměnnou $vysledek - v prvním průběhu cyklu while do ní nahraješ jiná data, která pak vyprázdníš během for cyklu na řádku 19 |
||
Marek88 Profil |
#3 · Zasláno: 16. 6. 2011, 14:32:32 · Upravil/a: Marek88
První problém, co vidím... Dál jsem to nezkoumal.
define ("COLS", 4); $dotaz = 'SELECT serie, slozka FROM kinder join k_rok using(serie) where rok=2010 group by serie'; $vysledek = mysql_query($dotaz); // tady nastavujete proměnnou while ($serie = mysql_fetch_array($vysledek)) { // tady jí chcete v cyklu postupně číst (pokaždé vám vrátí jeden řádek) $dotaz2 ="SELECT figurka FROM kinder where serie='$serie[serie]' order by figurka"; $vysledek = mysql_query($dotaz2); // ale tady tu samou proměnnou přepíšete něčím jiným if ($vysledek) { ... EDIT: A pokud odsazujete správně, tak vám na řádku 7 chybí uzavírací závorka }. Kdyby tam byla, tak se ale v následujícím řádku 8 použije jen poslední hodnota proměnné $dotaz2, což je jistě také špatně. |
||
quickspider Profil |
#4 · Zasláno: 16. 6. 2011, 15:46:00
díky, takhle už to funguje.
define ("COLS", 4); $dotaz = 'SELECT serie, slozka FROM kinder join k_rok using(serie) where rok=2010 group by serie'; $vysledek = mysql_query($dotaz); while ($serie = mysql_fetch_array($vysledek)) { $dotaz2 ="SELECT figurka FROM kinder where serie='$serie[serie]' order by figurka"; $vysledek2 = mysql_query($dotaz2); if ($vysledek2) { echo '<div class="titulek"><b>'.$serie['serie'].'</b></span></div>'; echo "<table align='center'>\n"; } else { echo "chyba dotazu"; } for ($i = 0; $dotaz = mysql_fetch_assoc($vysledek2); $i++) { if ($i % COLS == 0) echo "<tr>\n"; echo '<td align="center"><img src="obr/'.$serie['slozka']; $zmena=a($dotaz['figurka']); echo '/'.$zmena.'.gif" alt="'.$dotaz["figurka"].'"><br><center>'.$dotaz["figurka"]."</center></td>\n"; if ($i % COLS == COLS - 1) echo "</tr>\n"; } if ($i != COLS - 1) { while ($i++ % COLS != 0) { echo "<td> </td>"; } echo "</tr>\n"; echo "<tr>\n"; } echo "</table>\n"; } |
||
Časová prodleva: 14 let
|
0