Autor Zpráva
phhp
Profil *
Zdravim,
vysvetlil by mi prosimvas nekdo jak funguje nasledujici prikaz?

               while ($radek = mysqli_fetch_array($objekt_vysledku))
                   var_dump($radek);


V knizce je pouze napsano ze vypisuje vsechna data z databaze a to je cely, hlavne ze o komentarich a prikazu echo ma popsanych snad 10 stran. Nejak nerozumim te podmince jak to funguje. Vim, ze mysqli_fetch_array() je na vytahnuti dat z tabulky, ale jak ta podminka pozna, ze to musi projet celou tu tabulku. Diky moc.
Aleš Tichava
Profil
Cyklus WHILE se provádí dokud je podmínka uvedena v závorkách platná. To znamená, že se do proměnné $radek přiřadí záznam z jednoho řádku tabulky v databázi. Funkce mysql_fetch_array vrací tyto řádky jako pole nebo FALSE, když už není žádný další řádek ke čtení. Když cyklus narazí na FALSE, tak se provádění skončí.

Takhle nějak to z mého pohledu funguje =) Pokud se mýlím, tak se omlouvám a rád se přiučím.
Actimel
Profil
tady to rozebírají, pokud umíš anglicky, tak si to třeba projeď ;)

jinak asi jde o to že je to jako když by to bylo takhle
while( $radek ){
    var_dump( $radek );
}
že dokud proměnná $radek není FALSE, tak se provede while... jenže když tam máš
while( $radek = mysqli_fetch_array( $vysledek ) ){
    var_dump( $radek );
}
tak to při každém cyklu nastavuje hodnotu právě array jednoho řádku (nevím jak to dělá že to bere řádky postupně), dokud "nedojdou" řádky
Alphard
Profil
Žádné vysvětlení se mi moc nelíbí, zkusím to jinak.

Je třeba uvědomit si 2 základní věci:
1. mysqli_fetch_array() funguje podobně jako třeba next() při procházení pole. Daná funkce využívá interní ukazatel na aktuální položku v nějaké procházené sadě dat a při každém zavolání vrátí jeden prvek a posune ukazatel o jedno místo. Když dojde na konec, vrátí null. (next() vrací false, záleží na funkci.)
2. Přiřazování lze řetězit, $a1 = $a2 = $a3 = 'a';, do všech proměnných je vloženo 'a' (neřešme teď, že je to interně referencováno).

Ve výsledku se návratová hodnota uloží do proměnné $radek a navíc se „přiřadí“ na vyhodnocení v cyklu. Dokud jsou vracena data, jsou přetypována na true a while pokračuje; ve chvíli, kdy je vráceno null, přetypuje se na false a smyčka skončí.

Ukončení předávané sady dat (a teda návratovou hodnota null) zajišťuje databáze. Je to závislé na konkrétním požadavku, použitých indexech, typu tabulky... a je to dost složité.
phhp
Profil *
Ok diky moc, ted uz mito alespon dava smysl :-).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: