Autor Zpráva
KAmaral
Profil *
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
<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 *
jasný... ale mě jde oto aby se to vypisovalo pod sebe ...
jako
1 6
2 7
3 8
4 9
5 10
Hugo
Profil
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
>> Hugo wrote: static $i = 0;



static jsem nenasel ani jako funkci ani jako konstantu?
Co to ma delat?
Hugo
Profil
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
dekuji Ti
Anonymní
Profil *
preco while a nie for???
Hugo
Profil
Tady for moc pouzit nejde :-)
Anonymní
Profil *
neviem preco ale oka, asi to uz mas tak nic potom
Hugo
Profil
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 *
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>&nbsp;</td>';
}
echo '</tr>';

;}
}


Ale za boha to nemůžu převýst :( pořád nějaká chyba...
Anonymní
Profil *
hugo
no povedz co je na tom zlozitejsie?

KAmaral
co je toto
echo ($i%2==0) ? ('<tr bgcolor="white">') : ('<tr bgcolor="#EBF2F3">');
Hugo
Profil
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 *
mas pravdu,ale vyberas len jednu hodnotu nic ine a for je lepsi cyklus ako while, ale oka
Hugo
Profil
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 *
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>";
}
Toto téma je uzamčeno. Odpověď nelze zaslat.