Autor Zpráva
opsidiam
Profil
dobry den mam problem
chcel by som na e-shop urobit dynamicke zobrazovanie po 4 v riadku
urobil som tento script
require "db.php";
$top = mysql_query("SELECT * FROM kategorie");
$r = mysql_num_rows($top);
for($c=1; $c<$r+1; $c++){
if($c==1){echo "<table><tr><td width=\"700px\">";}
if($c==5){echo "<table><tr><td width=\"700px\">";}
if($c==9){echo "<table><tr><td width=\"700px\">";}
if($c==13){echo "<table><tr><td width=\"700px\">";}
require "db.php";
            $top1 = mysql_query("SELECT * FROM kategorie WHERE id = '$c'");
            while($za = mysql_fetch_object ($top1)){
                $kat_id = $za->id;
                $meno = $za->meno;
                $viditelnost = $za->viditelnost;
                $link = $za->link;
                $ikona = $za->ikona;
}
echo "<a href=\"$link\">
<table><tr><td width=\"25%\" height=\"100\">
<img src=\"$ikona\" style=\"border-radius:10px\" width=\"250\" height=\"125\" />
</td></tr><tr><td align=\"center\">$meno</td></tr></table></a>";
if($c==4){echo "</td></tr></table><br />";}else{echo "</td><td>";}
if($c==8){echo "</td></tr></table><br />";}else{echo "</td><td>";}
if($c==12){echo "</td></tr></table><br />";}else{echo "</td><td>";}
if($c==16){echo "</td></tr></table><br />";}else{echo "</td><td>";}
}
?>
ale chyba je ze mi moc roztiahne stranku do sirky a aj to ze pokial tam je ini pocet ako
4,8,12,16,20,24....
tak to rozhadze prosim o radu ako na to po prypade aj nejaky ten script na to aby som sa ho chitil
dakujem vopred
Joker
Profil
opsidiam:
Heh.
Ten kód vypadá jako soutěž, jak to napsat co nejméně efektivně.

Je mi záhadou, jak je možné psát:
if($c==1){echo "<table><tr><td width=\"700px\">";}
if($c==5){echo "<table><tr><td width=\"700px\">";}
if($c==9){echo "<table><tr><td width=\"700px\">";}
if($c==13){echo "<table><tr><td width=\"700px\">";}

a neříct si: „Tohle přece nemůže být správně, musí existovat nějaký lepší způsob!“

Tady by si snad úplně stačilo představit, jak by se to dělalo manuálně, kdyby to byly papírové záznamy v kartotéce.

Problém: Mám kartotéku se záznamy (a někde mám i lísteček, kolik těch záznamů celkem je). Úkol je vyrovnat je na stůl do komínků po čtyřech.

Uvedený skript realizuje následující postup:
Vyndám všechny záznamy z kartotéky.
Spočítám, kolik jsem jich vyndal (shodou okolností to samé číslo, jako mám napsané na tom lístečku).
Vrátím záznamy zpátky do kartotéky.
Opakuji následující:
- udělám čárku.
- Podívám se, jestli počet čárek je 1. Pokud ano, začnu novou hromádku.
- Podívám se, jestli počet čárek je 5. Pokud ano, začnu novou hromádku.
- Podívám se, jestli počet čárek je 9. Pokud ano, začnu novou hromádku.
- Podívám se, jestli počet čárek je 13. Pokud ano, začnu novou hromádku.
- Vyndám záznam z kartotéky.
- Položím záznam na hromádku.
dokud počet čárek je menší než číslo, které jsem si dříve poznamenal.
bestik_63
Profil
Ten kód ti určitě neuzavírá konec tabulky pokud c není dělitelelné 4 bez zbytku. Pokud potřebuješ pouze něco upravit a nebudeš se programováním živit, tak ti asi stačí přidat na konec podmínku, jinak si zkus něco vzít z toho co ti napsal Joker.

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