Zdravím,
mám otázku: jak se řeší výpis dat z databáze do tří sloupců? Jako tomu je třeba v e-shopech.
Výrobek 1 Výrobek 2 Výrobek 3
Výrobek 4 Výrobek 5 Výrobek 6
Výrobek 7 ..
Předem díky
Fórum › PHP
Výpis dat do tří sloupců
Pres HTML tabulku. Bez znalosti HTML k PHP nelez :)
(jeste to jde pres text/plain vystup, to je ale pozuitelne jen v nekterych pripadech)
pri kazdym vypisu zvys $i a pokud je $i % 3 == 0 pak vypis tr
tak to mi je jasne ja ale nevim jak mam resit ten cyklus
$dotaz = mysql_query("SELECT * FROM bla");
echo '<table>';
while($radek = mysql_fetch_assoc($dotaz)):
echo '<tr>';
echo '<td>'.$radek[vypis].'</td>';
echo '<td>'.$radek[vypis].'</td>';
echo '<td>'.$radek[vypis].'</td>';
echo '</tr>';
endwhile;
echo '</table>';
ale tady se mi budou vypisovat 3x ty same informace i kdyz do tri sloupcu. Jak ale udelam aby se vypisovaly pekne jedna po druhe ale delalo to ty 3 sloupce a pak radky dle poctu informaci???
To hrach : de to i s jedno podmínkou :
$dotaz = mysql_query("SELECT * FROM bla");
echo '<table>';
echo '<tr>';
$i=0;
while($radek = mysql_fetch_assoc($dotaz)):
$i++;
echo '<td>'.$radek[vypis].'</td>';
if($i %3 == 0){
echo "</tr><tr>";
}
endwhile;
echo "</tr>"
echo '</table>';
sice je fuk kolik jich tam máš ... ale co ... :-D
To don_Dominique : a co kdyz bude presne zaznamu, aby to vyplnilo presne radky, budu mit pak "spatny" html kod s tr navic? jej, to ne :)
To hrach : Mno zas tak špatný nebude ne ! akorát nebudeš mít ten řádek vyplněnej ! já sem dycky používal tohle a bez problemu ;)
To hrach: kdyz si v hlave projizdim ten cyklus, tak z toho vznikne kod, ktery by asi nechtel
<tr>
<td>produkt</td></tr>
<td>pro</td>
<td>pro</td>
<tr>...
takze taky nahodim nejake "reseni"(vychazim z hrachova kodu)
echo '<table>';
$i = 1;
while($radek = mysql_fetch_assoc($dotaz)):
if ($i % 3 == 1) { // pri prvnim,tretim,... prujezdu zacne radu
echo '<tr>';
}
echo '<td>'.$radek['vypis'].'</td>'; // prece nebude hledat konstanty ale rovnou ten retezec :)
if ($i % 3 == 0) { // pri tretim,sestem,... prujezdu ji zavre
echo '</tr>';
}
$i++;
endwhile; // jak ja tyhle endwhile a endif nesnasim :D
if(--$i % 3 != 0){ // ubereme $i, protoze se pridava az na konci cyklu a pokud je ruzne od nuly, je jasne, ze rada neni ukoncena
for($i = $i % 3;$i <= 3;$i++) // takze do 3 se vypisou prazdne bunky
echo '<td> </td>'; // forum nejak nebere entity, takze mezi <td> a </td> je "& nbsp;" (bez mezery)
echo '</tr>'; // a zavre se rada
}
echo '</table>';
no trochu jsem se do toho zamotal, snad jsem to napsal tak, jak jsem chtel :)
To insider : sem to debil! :D
To don_Dominique : Jo :) tak, jak je videt, je tvoje reseni urcite lepsi... ale me osobne by to volne tr vadilo... :/
Svuj spatny prispevek mazu...
cheeester napsal:
Zdravím,
mám otázku: jak se řeší výpis dat z databáze do tří sloupců? Jako tomu je třeba v e-shopech.
Výrobek 1 Výrobek 2 Výrobek 3
Výrobek 4 Výrobek 5 Výrobek 6
Výrobek 7 ..
Předem díky
Rozhodně bys to neměl házet do tabulky, jak ti tu špatně radí. Dej to do divů se stylem float: left a width odpovídající třetině šířky pro ty tři sloupce. Pak se ti to pěkně poskládá bez ohledu na počet produktů.
hrach napsal:
To insider : sem to debil! :D
To don_Dominique : Jo :) tak, jak je videt, je tvoje reseni urcite lepsi... ale me osobne by to volne tr vadilo... :/
Svuj spatny prispevek mazu...
Mne taky, a i validatorovi :smile18:
To Architekt : jo, to jsem puvodne chtel navrhnout, ale pak jsem si vzpomel, ze IE mi s tim vzdycky delal problemy a musel jsem po X polozkach vkladat break(X je pocet polozek na radku). Navic, pokukd by obsah kazde polozky byl jinak dlouhy a divy by nemely nastavenou pevnou vysku, tak by se to kraaasne rozhazelo :)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
[C#] Vypis dat z while do c# — založil gledy
[C#] Vypis dat z while do c# — založil gledy
Výpis dat do tabulky v C — založil Filip
Vypis dat z tabulky — založil Bloudy
Moderátoři diskuze