| 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: 13 let
|
|||
0