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