compu: foreach Problem

Beitrag lesen

Hallo,

Genau, und diese Fehlermeldung bekommst Du weil dein Array leer ist (keine Werte enthält) und damit foreach nicht ausgeführt werden kann.

Ja, ich verstehe was du meinst. Aber leider ist das Array nicht leer.

Schau mal hier. Das ist das komplette Skript. Die Ausgabe ist unten:

<?php require("xml.class.php");

$dbHost = "localhost"; $dbUser = "root"; $dbPassword = "test"; $dbName = "test";

mysql_connect($dbHost, $dbUser, $dbPassword) or $this->error("", mysql_error(), mysql_errno()); mysql_select_db($dbName);

$sql = "SELECT *         FROM   artikeldetails ad, bestellinfo bi, de_produktinfo de_pi, produktinfo pi,                products_hyrachie ph, products p         WHERE  (ad.d_artikelnummer = bi.d_artikelnummer)         AND    (bi.product_id = de_pi.product_id)         AND    (pi.product_id = de_pi.product_id)         AND    (p.product_id = bi.product_id)         AND    (p.category = ph.cat_id)";

$result = mysql_query($sql); $xml = new XmlWriter();

// Werte $i = 0;

$outer = array();

while ($row = mysql_fetch_array($result)) {     $inner = array(test,  // 'artikelnummer' =>                    test,  // 'artikelmehrfachauswahl' =>                    test,  // 'verpackungseinheit' =>                    test,  // 'artikelbezeichnung' =>                    test,  // 'artikelbezeichnung1' =>                    test,  // 'artikelbeschreibung' =>                    test,  // 'verpackungsinhalt' =>                    test,  // 'herstellernummer' =>                    test,  // 'herstellername' =>                    test,  // 'artikelbild' =>                    test,  // 'thumbnail' =>                    test,  // 'status' =>                    test,  // 'suchtext' =>                    test,  // 'hilfsmittelnummer' =>                    test,  // 'pharmazentralnummer' =>                    test,  // 'adrnummer' =>                    test,  // 'unnummer' =>                    test,  // 'empfendverbrauchpreis' =>                    test,  // 'de' =>                    test,  // 'zolltarifnummer' =>                    test,  // 'mwst' =>                    test,  // 'leasing' =>                    test,  // 'preis' =>                    test,  // 'preisgruppenkz' =>                    test,  // 'gueltigab' =>                    test,  // 'waehrungskz' =>                    test,  // 'verkaufsmenge' =>                    test,  // 'preis' =>                    test,  // 'Preisgruppenkz' =>                    test,  // 'gueltigab' =>                    test,  // 'waehrungsKZ' =>                    test,  // 'verkaufsmenge' =>                    test,  // 'preis' =>                    test,  // 'preisgruppenkz' =>                    test,  // 'gueltigab' =>                    test,  // 'waehrungsKZ' =>                    test,  // 'verkaufsmenge' =>                    test,  // 'preis' =>                    test,  // 'Preisgruppenkz' =>                    test,  // 'gueltigab' =>                    test,  // 'waehrungsKZ' =>                    test,  // 'verkaufsmenge' =>                    test,  // 'preis' =>                    test,  // 'gruppennummer' =>                    test,  // 'referenz' =>                    test,  // 'bezeichnung' =>                    test,  // 'art' =>                    test,  // 'typ' =>                    test); // 'artikelnummerziel' =>

array_push($outer, $inner); }

echo "<pre>"; print_r($outer); echo "</pre>";

$xml->push('artikel', array('transaction' => 'reinit'));

// Tags foreach($outer as $a) {     $xml->push('artiksatz');     $xml->element('artikelnummer', $a[0]);     $xml->push('artikelstamm', $a[++$i]);     $xml->element('artikelmehrfachauswahl', $a[++$i]);     $xml->element('verpackungseinheit', $a[++$i]);     $xml->element('artikelbezeichnung2', $a[++$i]);     $xml->element('artikelbezeichnung1', $a[++$i]);     $xml->element('artikelbeschreibung', $a[++$i]);     $xml->element('verpackungsinhalt', $a[++$i]);     $xml->element('artikelzusatzangabe', $a[++$i]);     $xml->element('herstellernummer', $a[++$i]);     $xml->element('herstellername', $a[++$i]);     $xml->element('artikelbild', $a[++$i]);     $xml->element('thumbnail', $a[++$i]);     $xml->element('status', $a[++$i]);     $xml->element('suchtext', $a[++$i]);     $xml->element('hilfsmittelnummer', $a[++$i]);     $xml->element('pharmazentralnummer', $a[++$i]);     $xml->element('adrnummer', $a[++$i]);     $xml->element('unnummer', $a[++$i]);     $xml->element('empfendverbrauchpreis', $a[++$i]);     $xml->element('ursprungsland', $a[++$i]);     $xml->element('zolltarifnummer', $a[++$i]);     $xml->element('mwst', $a[++$i]);     $xml->element('leasing', $a[++$i]);     $xml->pop();     $xml->push('preise');

$xml->push('preissatz');     $xml->element('preis', $a[++$i]);     $xml->element('Preisgruppenkz', $a[++$i]);     $xml->element('gueltigab', $a[++$i]);     $xml->element('waehrungsKZ', $a[++$i]);     $xml->element('verkaufsmenge', $a[++$i]);     $xml->pop(); // preissatz

$xml->push('preissatz');     $xml->element('preis', $a[++$i]);     $xml->element('Preisgruppenkz', $a[++$i]);     $xml->element('gueltigab', $a[++$i]);     $xml->element('waehrungsKZ', $a[++$i]);     $xml->element('verkaufsmenge', $a[++$i]);     $xml->pop();  // preissatz

$xml->push('preissatz');     $xml->element('preis', $a[++$i]);     $xml->element('Preisgruppenkz', $a[++$i]);     $xml->element('gueltigab', $a[++$i]);     $xml->element('waehrungsKZ', $a[++$i]);     $xml->element('verkaufsmenge', $a[++$i]);     $xml->pop();  // preissatz

$xml->push('preissatz');     $xml->element('preis', $a[++$i]);     $xml->element('Preisgruppenkz', $a[++$i]);     $xml->element('gueltigab', $a[++$i]);     $xml->element('waehrungsKZ', $a[++$i]);     $xml->element('verkaufsmenge', $a[++$i]);     $xml->pop();  // preissatz     $xml->pop();  // preise     $xml->push('artikelgruppenzuordnungen');     $xml->element('gruppennummer', $a[++$i]);     $xml->pop();  // artikelgruppenzuordnungen     $xml->push('medienverweise');     $xml->push('medienverweis');     $xml->element('referenz', $a[++$i]);     $xml->element('bezeichnung', $a[++$i]);     $xml->element('art', $a[++$i]);     $xml->element('typ', $a[++$i]);     $xml->pop();  // medienverweis     $xml->pop();  // medienverweise     $xml->push('artikelverweise');     $xml->push('artikelverweis', 'variante');     $xml->element('artikelnummerziel', $a[++$i]);     $xml->pop(); // artikelverweis     $xml->pop(); // artikelverweise }

$xml->pop(); echo $xml->getXml(); ?>

Ausgabe:

Array (     [0] => Array         (             [0] => test             [1] => test             [2] => test             [3] => test             [4] => test             [5] => test             [6] => test             [7] => test             [8] => test             [9] => test             [10] => test             [11] => test             [12] => test             [13] => test             [14] => test             [15] => test             [16] => test             [17] => test             [18] => test             [19] => test             [20] => test             [21] => test             [22] => test             [23] => test             [24] => test             [25] => test             [26] => test             [27] => test             [28] => test             [29] => test             [30] => test             [31] => test             [32] => test             [33] => test             [34] => test             [35] => test             [36] => test             [37] => test             [38] => test             [39] => test             [40] => test             [41] => test             [42] => test             [43] => test             [44] => test             [45] => test             [46] => test             [47] => test             [48] => test         )

[1] => Array         (             [0] => test             [1] => test             [2] => test             [3] => test             [4] => test             // etc ... bis 193

Un dann kommen die ganzen Fehlermeldungen:

Warning: Invalid argument supplied for foreach() in ... Warning: Invalid argument supplied for foreach() in ... Warning: Invalid argument supplied for foreach() in ... Warning: Invalid argument supplied for foreach() in ... Warning: Invalid argument supplied for foreach() in ... Warning: Invalid argument supplied for foreach() in ... etc,etc,etc