2 votes

D'où vient null dans ce tableau ?

Je suis en train de convertir un tableau php en xml avec quelque chose comme ceci :

$bigArray = $readConnection->fetchAll($query);

  $doc = new DOMDocument();
  $doc->formatOutput = true;       
  $r = $doc->createElement( "DATA" );
  $doc->appendChild( $r );     
  foreach( $bigArray as $product )
  {
    $b = $doc->createElement( "ITEM" );        
    $product_type = $doc->createElement( "PRODUCT_TYPE" );
    $product_type->appendChild(
    $doc->createTextNode( $product['ProductType'] )
    );
    $b->appendChild( $product_type ); 
    $sku = $doc->createElement( "SKU" );
    $sku->appendChild(
    $doc->createTextNode( $product['SKU'] )
    );
    $b->appendChild( $sku ); 
    $r->appendChild( $b );
   }

  echo $doc->saveXML();

Cela renvoie un document xml mais à la toute fin, null est ajouté et je pense que c'est ce qui me cause d'autres problèmes. Ainsi, par exemple, au bas du document xml qui est généré, cela ressemble à :

  </ITEM>
</DATA>
null

Cette valeur nulle provient du tableau original que je vois si je le fais :

print_r($bigArray)

Je vois quelque chose comme :

Array ( [0] => Array ( [ProductType] => simple [SKU] => 09423100010018 ) [1] => Array ( [ProductType] => simple [SKU] => 14552300010002 )) null

Je l'appelle depuis une classe dans Magento comme :

class Foo_Model_Queryone extends Mage_Core_Model_Abstract
{

    public function pprQuery() {
    $resource = Mage::getSingleton('core/resource');    
    $readConnection = $resource->getConnection('core_read');    
    $query = ("SELECT cpe.type_id AS 'ProductType',
      cpe.sku AS 'SKU',
      .....

0voto

ShaunOReilly Points 1462

La classe Mage_Core_Model_Abstract est à l'origine du problème, ou une autre classe plus élevée, qui produit la valeur nulle.

Essayez de le parcourir en utilisant Xdebug dans Netbeans, et voyez ce qui cause la valeur nulle. Je suis curieux de voir le résultat.

HTH

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X