Autor Zpráva
quickspider
Profil
dobrý den,
použil jsem ód ze sekce faq, ale nevím jak ho mám upravi,t aby se pod každou položku vložil i název.
echo "<table>\n";
for ($i = 0; $dotaz = mysql_fetch_assoc($vysledek); $i++)
{
  if ($i % COLS == 0) echo "<tr>";
  echo '<td><img src="2010/'.$dotaz["serie"].'/'.$dotaz["figurka"].'.gif" alt="'.$dotaz["figurka"].'"></td>';
  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";
}


děkuji.

P. S. K čemu slouží % u ($i % COLS == 0)?
candiess
Profil
ani já se v tom kodu nevyznám, popiš prosím přesněji svůj problém, pokusím se ti poradit :)
( vypiš v jakém tvaru chceš co vypsat )
Taps
Profil
quickspider:
a takto by to nešlo?
echo "<table>\n";
for ($i = 0; $dotaz = mysql_fetch_assoc($vysledek); $i++)
{
  if ($i % COLS == 0) echo "<tr>";
  echo '<td><img src="2010/'.$dotaz["serie"].'/'.$dotaz["figurka"].'.gif" alt="'.$dotaz["figurka"].'"><br>
  '.$dotaz['nazev'].'</td>';
  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";
}


K čemu slouží % u ($i % COLS == 0)?
Jedná se o tzv. modulo dělení. V případě, že zbytek po dělení $i a COLS bude 0 tak se provedou další příkazy
candiess
Profil
Taps:
Prosímtě, $i je proměnná z toho cyklu FOR(), ale to COLS..to musí být define() ne.? nebo co je to.. díky za odpověď :)
Alphard
Profil
candiess:
ale to COLS..to musí být define() ne.?
Ano, je to použito jako konstanta. Mohla by tam být i proměnná, nezáleží na tom.
Kód od Tapse [#3] vypadá správně.
Taps
Profil
candiess:
Ano COLS by mělo být někde definováno. Např takto
define('COLS',3)
quickspider
Profil
Taps:
potřebuju ten název do dalšího řádku, tedy za tr a pak td

jinak mi ještě nefunguje vnoření tohoto dotazu do while. Zpracuje se jednou celý kód, ale pak nepokračuje znovu. Zkoušel jsem podmínku na $serie !=NULL, ale nepomohlo to.

celý kód:
$dotaz ='SELECT distinct serie FROM `2010` order by serie';
$vysledek = mysql_query($dotaz);
while ($dotaz = mysql_fetch_array($vysledek)) 
	 {
	 $serie=$dotaz["serie"];
echo '<div class="titulek"><div class="titulek_text"><b>'.$dotaz["serie"]."</b>".'</span></div></div>';

$dotaz ="SELECT serie, figurka FROM `2010` where serie='$serie' order by figurka";
$vysledek = mysql_query($dotaz);
define ("COLS", 3);  // počet sloupců

echo "<table>\n";
for ($i = 0; $dotaz = mysql_fetch_assoc($vysledek); $i++)
{
  if ($i % COLS == 0) echo "<tr>";
  echo '<td><img src="2010/'.$dotaz["serie"].'/'.$dotaz["figurka"].'.gif" alt="'.$dotaz["figurka"].'"></td>';
  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";

}
quickspider
Profil
řešení jsem po dnu pátrání udělal takto:

<?php
pripojeni_db();
$dotaz = 'SELECT distinct serie FROM `2010` order by serie';
$vysledek = mysql_query($dotaz);

while ($dotaz = mysql_fetch_array($vysledek)) {
$pole[]= $dotaz["serie"];
} 
foreach ($pole as $serie) {

$dotaz ="SELECT serie, figurka FROM `2010` where serie='$serie' order by figurka";
$vysledek = mysql_query($dotaz);
while ($dotaz = mysql_fetch_array($vysledek)) 
	 {
define ("COLS", 4);  // počet sloupců
echo '<div class="titulek"><b>'.$serie."</b>".'</span></div>';
echo "<table align='center'>\n";
for ($i = 0; $dotaz = mysql_fetch_assoc($vysledek); $i++)
{
  if ($i % COLS == 0) echo "<tr>";
  echo '<td><img src="2010/'.$dotaz["serie"].'/'.$dotaz["figurka"].'.gif" alt="'.$dotaz["figurka"].'"><br><center>'.$dotaz["figurka"].'</center></td>';
  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";
}
}
?>


Objevil jsem problém, že se nezobrazuje první položka z databáze.
Konkrétně po příkazu
$dotaz ="SELECT serie, figurka FROM `2010` where serie='$serie' order by figurka";
se vypisují hodnoty až od druhého záznamu.

Mohl by mi někdo poradit? díky
Tori
Profil
První řádek z výsledku čtete už na ř.13. Nechtěl jste tam použít spíš toto:
if ($vysledek)
Definice konstanty by taky měla být mimo cyklus - je zbytečné přepisovat cokoli stále stejnou hodnotou, navíc bude vyhazovat chybu E_NOTICE.
quickspider
Profil
Tori:
díky moc, už to funguje

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: