Autor | Zpráva | ||
---|---|---|---|
phhp Profil * |
#1 · Zasláno: 26. 7. 2013, 16:11:12
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 |
#2 · Zasláno: 26. 7. 2013, 17:18:13
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 ); } while( $radek = mysqli_fetch_array( $vysledek ) ){ var_dump( $radek ); } |
||
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 * |
#5 · Zasláno: 26. 7. 2013, 22:34:54
Ok diky moc, ted uz mito alespon dava smysl :-).
|
||
Časová prodleva: 11 let
|
0