Autor Zpráva
tKej
Profil
Asi jsem lamer, nikde jsem to nenašel, ale potřebuju vypsat data do tabulky, jako to je třeba na e-shopech, aby byl výpis 3 záznamy vedle sebe a pod sebe dynamicky, podle počtu záznamů v databázi
tKej
Profil
Budu rád i za link kde seženu návod, teorii.. díky
dehtak
Profil
to je jednoduchy vytvor tabulku <table>
pak vypis z db whille ($row = mysql_fetch_array($db)) {
a tady das <td>vypis z db</td>

} ukoncis
a ukoncis tabulku </table>

pokud to chces zvlast do sloupcu a tak budes muset pouzit Limit
ono se to da resit vselijak
tKej
Profil
dehtak
Mohl bys nastínit jak použít zmiňovaný limitm nebo jiné řešení, jde mi o zvlášť sloupce
alteaffe
Profil *
pockej kouknu se nedavno jsem to psal
nevim nemuzu to najit , zjisti si pocet polozek ktere chces vypsat z databaze
pokud chces mit pevnej pocet sloupcu tak si je zadej jinak si to muzes vypocitac z toho poctu polozek z db
dejme tomu ze budes mit v db 15 polozek muzes to vypocitat tak ze 15 vydelis 2
a vyjde ti 7,5 zaokrouhli na 8

takze pro patnac polozek budes mit 8 sloupcu a 8 radku
a pak uz jen vypisujes do tech sloupcu s limitem

kdyz mas pevnej pocet sloupcu treba 3 tak to mas limit = pocet polozek/pocet_sloupcu

ja uz si to presne nepamatuju ale nak tak by to mnelo bejt
pocet polozek zjistis takhle
$db = mysql_query("SELECT * FROM tabulka WHERE neco = 'neco' ");
$pocet_polozek = mysql_num_rows($db); 

a ten limit je
$limit= $pocet_polozek/$pocet_sloupcu;

$db = mysql_query("SELECT * FROM tabulka WHERE neco = 'neco' LIMIT $limit");
while(mysql_fetch_array($db))


neco tam chybi nemuzu si spomenou ale nejak takhle , vsak ty na to prijde musis trosku premyslet
RPG
Profil
Možná napíšu nesmysl, jsem v téhle oblasti relativně nezkušený, ale nebylo by efektivnější napsat:
SELECT neco FROM tabulka WHERE neco='neco' ?

Mimochodem, celé téma by se hodilo spíše do diskuse o databázích.
tKej
Profil
RPG
Ty jsi mě asi nepochopil... výběr dat z dbc a výpis pod sebe je otázkou primitivní, ale potřebuji to aby se to zobrazovalo jinak, třeba tři vedle sebe a pak konec řádku a další tři atd....
alteaffe
Nějak to zkusím, ale pořád se nečapu
alteaffe
Profil *
ne uz vim udelas si vypis zjistis si pocet a vydelis pocty sloupci tim zjistis kolik bude radku
udelas
$pocet_sloupcu =8;
$db = mysql_query("SELECT * FROM tabulka WHERE neco = 'neco' ");
$pocet_polozek = mysql_num_rows($db);
$limit = pocetpoloze/pocet_sloupcu;
<table>
for($m=0; $m<=$pocet_sloupcu; $m++;){
<tr>
$db = mysql_query("SELECT * FROM tabulka WHERE neco = 'neco' LIMIT $limit");
while($vypis=mysql_fetch_array($db)){
<td>$vypis[polozka];</td>
}
</tr>
}
</table>


pisu to na rychlo musis samozrejmne oddelit html od php nebo pouzij echa je to jen tak orientacne
alteaffe
Profil *
ale je to tohle trosku zahul na array , druha moznost je si to zinicializovat do arry celej vypis z db
a obdobnym zpusobem akored ze jen s array to budes vypisovat
dehtak
Profil
kua ne na array ale na db ze je to zahul , mne uz nejak nefunguje hlava
Alphard
Profil
$db = mysql_query("SELECT * FROM tabulka WHERE neco = 'neco' ");
$pocet_polozek = mysql_num_rows($db);

kde na to pořád chodíte, je to velmi neefektivní, k tomu slouží count(*)

tKej
když to chceš řešit tabulkou, nějak tahle
echo "<table>";
while ($line = mysql_fetch_assoc (...))
  {  echo "<td>...</td>";
     if (++$mod % 3 === 0) echo "</tr><tr>";  }
echo "</table>";

ještě by se muselo dořešit dokončení řádku v poslední iteraci
nebo to naházet do divů a ty nějak floatovat (přesně nevím, ke kodeřině mám dál :-))
RPG
Profil
Jen doplním Alpharda, hezky popsáno je získávání počtu řádků tady:
http://php.vrana.cz/ziskani-poctu-radek.php
tKej
Profil
Alphard
Pokud jsem tě pochopil správně, tak myslíš udělat podmínku, že když se třikrát udělá jedna buňka (nebo prostě to zobrazení jak chci mít3 na řádek) tak se poté udělá </tr><tr>, myslím že to je velice dobrý nápad, jestli bys mohl trošku vysvětlit if (++$mod % 3 === 0)
nightfish
Profil
if (++$mod % 3 === 0)
++$mod zvýší hodnotu proměnné $mod o 1 ještě před jejím vyhodnocením

% 3 znamená zbytek pro dělení třemi
=== je operátor porovnání (kontroluje hodnotu i typ)

delší ekvivalent by byl
$mod = $mod + 1;
if ($mod % 3 === 0) ...
tKej
Profil
Moc díky Alphard a nightfish. Už sem to pochopil, je to přesně jak říkáte a je to super, lidi mmooooooc díky;)
Honza-aud
Profil *
Děkuji za nápovědu !!!!

Trochu jsem to přepracoval, resp. doplnil, ale alespoň jsem se chytnul .

Ještě jednou díky

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: