Autor | Zpráva | ||
---|---|---|---|
Miraňák Profil * |
zdravím,
vyskytl se mi Warning: Invalid argument supplied for foreach() in při tomhle kodu if ($_SESSION[produkty]) { foreach ($_SESSION[produkty] as $vypis) { echo $vypis; } } nevíte jak by to mělo být správně.. pokud mám v tom session několik hodnot najednou .. poradte prosím :P |
||
Kalby Profil |
#2 · Zasláno: 25. 5. 2008, 23:27:21
no tak asi session produkty neni pole ale jenom jedna hodnota, zkus si ji vypsat pomoci print_r
|
||
Miraňák Profil * |
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=74 850
právě taji mi jeden poradil toto ale když to vypíšu zobrazi se jen jedno array ale když udělám toto $_SESSION['neco'] = array (1, 2, 3, 17); foreach ($_SESSION['neco'] as $v) { print "Současná hodnota: $v.\n"; } tak to normálně funguje |
||
Jan Tvrdík Profil |
#4 · Zasláno: 26. 5. 2008, 06:43:02
if ($_SESSION["produkty"]) { foreach ($_SESSION[produkty] as $vypis) { echo $vypis; } } |
||
Ssob Profil |
#5 · Zasláno: 26. 5. 2008, 11:40:15
Jan Tvrdík
Uvozovky nejsou nutne, spis dobry zvyk. Miraňák Zkus: if (is_array($_SESSION['produkty'])) { foreach ($_SESSION['produkty'] as $vypis) { echo $vypis; } } else print 'Produkty nejsou pole'; |
||
souki Profil |
#6 · Zasláno: 26. 5. 2008, 12:09:55
Ssob
uvozovky jsou nutné. Jinak se dosazuje konstanta |
||
Ssob Profil |
#7 · Zasláno: 26. 5. 2008, 12:48:22
souki
Mas pravdu. V pripade, ze konstanta neni definovana prevede se na string a vyhodi varovani (takze v jeho pripade by to mohlo fungovat). Rekl bych, ze to je nejake blbu-vzdorna vymozenost php. Hezky to ilustruje pripklad: print KONSTANTA; // napise KONSTANTA define("KONSTANTA", "XXX"); print KONSTANTA; // napise XXX |
||
krteczek Profil |
#8 · Zasláno: 26. 5. 2008, 13:31:09
Já bych to napsal nějak takhle:
function getProdukty($var) { $txt = ''; if(!empty($var)) { if (is_array($var)) { foreach ($var as $vypis) { $txt .= '<br>' . $vypis; } return $txt; } else { trigger_error('Produkty nejsou pole', E_USER_ERROR); } } } if(!empty($_SESSION["produkty"])) { echo getProdukty($_SESSION["produkty"]); } jen inkludnu někde funkci a mám ji dostupnou v celé aplikaci. změny provedu na jednom místě |
||
Časová prodleva: 4 roky
|
|||
mikin.cz Profil * |
#9 · Zasláno: 8. 3. 2012, 02:44:52
Dobré vysvětlení výskytu chyby "Warning: Invalid argument supplied for foreach() in ..." naleznete zde.
|
||
Časová prodleva: 2 roky
|
|||
residentcz Profil |
#10 · Zasláno: 22. 9. 2013, 23:10:22
Ahojte nevíte někdo proč mi to píše tento error ?
Warning: Invalid argument supplied for foreach() $jevdatabazi = 0; foreach ($_SESSION["kosik_pocet"] as $kod_s => $pocetKs_s) { $vysledek = mysql_query("SELECT * FROM sesion_kosik WHERE (email='$email' AND kosik_kod='$kod_s') "); while ($zaznam=MySQL_Fetch_Array($vysledek)) { $jevdatabazi = 1; } if ($jevdatabazi==0) { mysql_query("INSERT INTO sesion_kosik(kosik_kod, kosik_pocet, email) VALUES('$kod_s', '$pocetKs_s', '$email')"); } else{ mysql_query("UPDATE sesion_kosik SET kosik_pocet='$pocetKs_s' WHERE (email='$email' AND kosik_kod='$kod_s')"); } } |
||
Alphard Profil |
#11 · Zasláno: 22. 9. 2013, 23:22:44
Protože nad proměnnou
$_SESSION["kosik_pocet"] nelze iterovat. Když si vypíšete print_r($_SESSION["kosik_pocet"]); , zjistíte, co skutečně obsahuje.
|
||
residentcz Profil |
#12 · Zasláno: 23. 9. 2013, 00:07:13
jasně už to funguje :) díky
|
||
Časová prodleva: 11 let
|
0