PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : foreach geht nicht mehr


Riegelhaus
07.06.2011, 10:16:20
Hi

die foreach-funktion geht nicht mehr seit dem Xampp-Update

die Daten kommen aus dem Formular, teils mit Radiobutton, und nicht alle Datensätze haben alle Variablen, da sie unterschiedlicher Herkunft sind

<input name='test[$zaehler][a]' value='$row2[info]'>

bisher habe ich die Daten mit foreach auseinander genommen

foreach($_POST['test'] as $vert)
{
if(!empty($vert['a'])){$a=$vert[a'];}
if(!empty($vert['b'])){$b=$vert['b'];}
.
.
.
.
}

var_dump($_POST['test']); vor dem foreach bringt:

[1]=> array(7) { ["a"]=> string(0) "" ["x"]=> string(5) "14868" ["b"]=> string(6) "128101" ["c"]=> string(10) "1333231198" ["d"]=> string(4) "1076" ["e"]=> string(5) "14868" ["g"]=> string(4) "7703" }
[2]=> array(5) { ["a"]=> string(2) "ja" ["b"]=> string(5) "10038" ["e"]=> string(5) "10038" ["g"]=> string(3) "666" ["f"]=> string(0) "" }
[3]=> array(4) { ["a"]=> string(2) "ja" ["b"]=> string(6) "130093" ["e"]=> string(0) "" ["f"]=> string(0) "" }
[4]=> array(4) { ["a"]=> string(2) "ja" ["b"]=> string(6) "127114" ["e"]=> string(0) "" ["f"]=> string(0) "" }
[5]=> array(4) { ["a"]=> string(2) "ja" ["b"]=> string(4) "4170" ["e"]=> string(0) "" ["f"]=> string(0) "" }

der Output nach dem foreach dann

128101 14868 14868 7703 1333231198 1076
10038 14868 10038 ja 666 1333231198 1076
130093 15832 10038 ja 666 1333231198 1076
127114 15833 10038 ja 666 1333231198 1076
4170 15834 10038 ja 666 1333231198 1076

Darin ist erkennbar, dass dort wo es keine Zahlen hat, die Zahlen des vorgänigen Datensatzes übernommen werden.

was muss ich machen dass die Datensturkutr nach dem foreach noch gleich ist wie vorher?

DokuLeseHemmung
07.06.2011, 10:28:03
dass dort wo es keine Zahlen hat, die Zahlen des vorgänigen Datensatzes übernommen werden.
Das ist kein Problem der PHP Version, des foreach oder ähnlich.

Hier
if(!empty($vert['a'])){$a=$vert[a'];}
überschreibst du a ja nur wenn ein Value vorliegt.


Also wundert mich das Verhalten nicht.
Du selber schießt den Bock.

Riegelhaus
07.06.2011, 10:54:34
ok, klar doch, ist eigentlich klar. Doch ich kam dazu weil ich vorher einen anderen Felher hatte


Notice: Undefined index: a in D:\xampp\htdocs\2011\bearbeitungsseiten\esgehtnicht5.php on line 163

Es wird nach der Variablen a gesucht und die wurde nicht gefunden weil leer, resp. nicht vorhanden.

The Serious Sam
07.06.2011, 10:58:50
dann setzte jede runde erstmal alles auf null:


foreach($_POST['test'] as $vert)
{
$a = null;
$b = null;
.
.
.

if(!empty($vert['a'])){$a=$vert['a'];}
if(!empty($vert['b'])){$b=$vert['b'];}
.
.
.
}

Riegelhaus
07.06.2011, 11:07:46
Danke

Habe noch was anderes rausgefunden
foreach($_POST['test'] as $vert)
{
if(!empty($vert['a'])){$a=$vert['a'];}else{$a='';}
if(!empty($vert['b'])){$b=$vert['b'];}else{$b='';}
.
.
.
.
}
Was ist besser?

DokuLeseHemmung
07.06.2011, 11:14:08
$a = isset($vert['a'])?$vert['a']:'';

Riegelhaus
07.06.2011, 12:08:37
Danke