Autor | Zpráva | ||
---|---|---|---|
KAmaral Profil * |
#1 · Zasláno: 20. 4. 2005, 15:37:36
Please měl bych dotázeček...
$sql = mysql_query("SELECT obor FROM seznam where ID = obrazek "); a teď tam mám cca 20-30 záznamů.. ale potřeboval bych je řadit do 2 sloupců... Nevíte jak napsat to aby se to seřadilo třeba 15 do jednoho a 15 do druhýho ? Vim že je to nějak s lichým a sudým.. ale prostě se mi to nepodařilo sepsat .. Díky moc předem... |
||
Hugo Profil |
#2 · Zasláno: 20. 4. 2005, 15:41:33 · Upravil/a: Hugo
<table>
<?php while ($data = MySQL_Fetch_Array($sql)) { static $i = 0; if ($i%2 == 0) { print '<tr><td>'.$data[0].'</td>'; } else { print '<td>'.$data[0].'</td></tr>'; } $i++; } ?> </table> To by snad melo fungovat |
||
KAmaral Profil * |
#3 · Zasláno: 20. 4. 2005, 15:56:33
jasný... ale mě jde oto aby se to vypisovalo pod sebe ...
jako 1 6 2 7 3 8 4 9 5 10 |
||
Hugo Profil |
#4 · Zasláno: 20. 4. 2005, 16:21:12
Tak pak to jde udelat takto
<?php while ($data = MySQL_Fetch_Array($sql)) { $pole[] = $data[0]; } $polovina = (Count($pole)%2 ==0) Count($pole)/2 : (Count($pole)+1)/2; for ($i=0; $i < $polovina; $i+=2) { print $pole[$i]."\t\t\t".$pole[$i+$polovina]; } ?> Snad tam neni chyba. Je to napsane asi prasacky, ale princip by mel byt videt. |
||
23k Profil |
#5 · Zasláno: 21. 4. 2005, 09:31:56
>> Hugo wrote: static $i = 0;
static jsem nenasel ani jako funkci ani jako konstantu? Co to ma delat? |
||
Hugo Profil |
#6 · Zasláno: 21. 4. 2005, 09:51:15
static je deklarace staticke promenne.
Tzn., ze pokud ji definujes uvnitr cyklu, tak se definuje pouze jednou a pote se jeji definice ignoruje. viz. http://cz.php.net/variables.scope |
||
23k Profil |
#7 · Zasláno: 21. 4. 2005, 15:01:34
dekuji Ti
|
||
Anonymní Profil * |
#8 · Zasláno: 21. 4. 2005, 15:08:32
preco while a nie for???
|
||
Hugo Profil |
#9 · Zasláno: 21. 4. 2005, 15:33:13
Tady for moc pouzit nejde :-)
|
||
Anonymní Profil * |
#10 · Zasláno: 21. 4. 2005, 15:40:18
neviem preco ale oka, asi to uz mas tak nic potom
|
||
Hugo Profil |
#11 · Zasláno: 21. 4. 2005, 15:58:06
Anonymní
Dobre, jde pouzit, ale bylo by to komplikovanejsi. <?php $pocet = MySQL_Num_Rows ($sql); for ($i=0; $i<$pocet; $i++) { $data = MySQL_Fetch_Array($sql); ..... } ?> |
||
KAmaral Profil * |
#12 · Zasláno: 21. 4. 2005, 16:29:43
Já to mám teďka hozený takhle .. to je po řádcích jako
1 2 3 4 5 6 @$sql7 = mysql_query("SELECT * FROM seznamvysetreni WHERE obor='$vyber'"); ?> <table width="90%" border=0 cellpadding=1 cellspacing=1 class="tabulka" align="center" > <br> <tr> <? $seznamoboru = mysql_query("SELECT * FROM seznamoboru ORDER BY obor"); while ($nadpis = mysql_fetch_row($seznamoboru)) { ?> <tr bgcolor="#AAC5E8"> <th colspan="2"><?echo $nadpis[1]?></td> <? $sql4 = mysql_query("SELECT * FROM seznamvysetreni where obor= $nadpis[0]"); $rows = ceil(mysql_num_rows($sql4)/2); for($i=1;$i<=$rows;$i++) { echo ($i%2==0) ? ('<tr bgcolor="white">') : ('<tr bgcolor="#EBF2F3">'); for ($x=1;$x<=2;$x++) { $row=mysql_fetch_row($sql4); if (is_array($row)) echo '<td width="50%">'.$row[2].'</td>'; else echo '<td> </td>'; } echo '</tr>'; ;} } Ale za boha to nemůžu převýst :( pořád nějaká chyba... |
||
Anonymní Profil * |
#13 · Zasláno: 21. 4. 2005, 16:40:51
hugo
no povedz co je na tom zlozitejsie? KAmaral co je toto echo ($i%2==0) ? ('<tr bgcolor="white">') : ('<tr bgcolor="#EBF2F3">'); |
||
Hugo Profil |
#14 · Zasláno: 21. 4. 2005, 16:42:47 · Upravil/a: Hugo
No misto jednoho radku
while ($data = MySQL_Fetch_Array($sql)) pouzijes tri $pocet = MySQL_Num_Rows ($sql); for ($i=0; $i<$pocet; $i++) { $data = MySQL_Fetch_Array($sql) Toto echo ($i%2==0) ? ('<tr bgcolor="white">') : ('<tr bgcolor="#EBF2F3">'); je ternarni operator: Pokud bude $i sude, tak je barva pozadi bile, pokud je liche, tak je barva #ebf2f3 |
||
Anonymní Profil * |
#15 · Zasláno: 21. 4. 2005, 16:46:37
mas pravdu,ale vyberas len jednu hodnotu nic ine a for je lepsi cyklus ako while, ale oka
|
||
Hugo Profil |
#16 · Zasláno: 21. 4. 2005, 16:54:14
V tomto pripade je podle me lepsi while. Min tim usetris zjisteni poctu radek a for ti v tomto pripade neprinasi zadnou vyhodu.
A navic je IMHO v tomto pripade while prehlednejsi. |
||
KAmaral Profil * |
#17 · Zasláno: 21. 4. 2005, 17:12:10
Mnooo to je přesně ono.. druhej čtvrtej atd řádek mi to neudělá :(
A já fakt už nevim jak dál :(((( tady jsem se zasek.. $seznamoboru = mysql_query("SELECT * FROM seznamoboru ORDER BY obor"); while ($nadpis = mysql_fetch_row($seznamoboru)) { ?> <tr bgcolor="#AAC5E8"> <th colspan="2"><?echo $nadpis[1]?></td> <? $sql4 = mysql_query("SELECT * FROM seznamvysetreni where obor= $nadpis[0]"); while ($data = MySQL_Fetch_Array($sql4)) { $pole[] = $data[2]; } $polovina = (Count($pole)%2 ==0)? Count($pole)/2 : (Count($pole)+1)/2; echo "<table>"; for ($i=0; $i < $polovina; $i+=2) { echo "<tr><td>".$pole[$i]."</td><td>".$pole[$i+$polovina]."</td></tr>"; } |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0