Autor Zpráva
Karlos99
Profil *
mám php kód

// ... dotaz na DB

while($frow[] = mysql_fetch_array($res));

count($frow) teď vrátí počet prvků + 1... jak je to možné?

foreach($frow as &$r)
{
// tady se mi vytvoří prázdný řádek...
}


pomáhá akorát
foreach($frow as &$r)
{
if(is_array($r))....
}

ale při velkém počtu řádků je to menší brzda...
Peca
Profil
while($frow[] = mysql_fetch_array($res)); bude vracet o jeden prvek víc, protože do pole se přiřadí i poslední vykonání fetch, které vrací false (nebo nějaký jiný neúspěch, nevím). Prostě if ($x=false) taky provede přiřazení $x, i když blok za ním se už neprovede.
Správně by to bylo
while($f = mysql_fetch_array($res)) $frow[] = $f;
Kajman_
Profil *
Spíš si myslím, že je to tím, že fetch_array udělá číselné i textové (pokud je to možné) klíče.

Takže si udělejte pole jen s textovými či číselnými klíči.
souki
Profil
fetch_array hlavně vrací dvojnásobek prvků, protože je vrací jak v asociativním poli tak normálně číslovaném.... když dáš echo Implode(";",$fetch) tak to vypíše všechny hodnoty dvakrát
ale radši udělej
[/pre]
while($tr= mysql_fetch_array($res):
echo $tr[polozka];
endwhile;
[pre]
IHMO je to navic rychlejší
Toto téma je uzamčeno. Odpověď nelze zaslat.

0