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