Autor | Zpráva | ||
---|---|---|---|
Karlos99 Profil * |
#1 · Zasláno: 19. 3. 2006, 08:54:27
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 |
#2 · Zasláno: 19. 3. 2006, 11:12:29
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 * |
#3 · Zasláno: 19. 3. 2006, 11:18:38
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. |
||
Časová prodleva: 7 dní
|
|||
souki Profil |
#4 · Zasláno: 26. 3. 2006, 10:51:25
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ší |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0