Autor Zpráva
quickspider
Profil
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>&nbsp;</td>";
  }
  echo "</tr>\n";
  echo "<tr>\n";
}
echo "</table>\n";
YoSarin
Profil
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
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)
     {
     ...
Navíc se mi zdá, že tam možná máte chybně závorky. Chtělo by to správně odsazovat, pak se chyby hledají lépe...
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
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>&nbsp;</td>";
  }
  echo "</tr>\n";
  echo "<tr>\n";
}
echo "</table>\n";
}

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:

0