2015-11-16 47 views
0

我在與一個XML的foreach,我需要爲XML部分XML的foreach插入到數據庫中的多個子節點

<Pieces> 
    <Piece> 
     <PieceNumber>1</PieceNumber> 
     <Depth>5</Depth> 
     <Width>5</Width> 
     <Height>5</Height> 
     <Weight>1</Weight> 
     <PackageType>PA</PackageType> 
     <DimWeight>0.025000</DimWeight> 
     <DataIdentifier>J</DataIdentifier> 
     <LicensePlate>JD014600002433049632</LicensePlate> 
     <LicensePlateBarCode>iVBORw0KGgoAAAANSUhEUgAAAZYAAABeAQMAAAA6+qC4AAAABlBMVEX///8AAABVwtN+AAAAaElEQVR42u3LIRJAQBiA0Z9AUqStextHUSTJCMRVzFDYYLiNO2whklSNM2jC9/rzRKSIymk3eaXXOqzjI5jvZnDipaLax6klUVenV5vZcDy33oj48h2Hw+FwOBwOh8PhcDgcDofzp/MC4ZwWvNbw1agAAAAASUVORK5CYII=</LicensePlateBarCode> 
    </Piece> 
    <Piece> 
     <PieceNumber>2</PieceNumber> 
     <Depth>5</Depth> 
     <Width>5</Width> 
     <Height>5</Height> 
     <Weight>1</Weight> 
     <PackageType>PA</PackageType> 
     <DimWeight>0.025000</DimWeight> 
     <DataIdentifier>J</DataIdentifier> 
     <LicensePlate>JD014600002433049633</LicensePlate> 
     <LicensePlateBarCode>iVBORw0KGgoAAAANSUhEUgAAAZYAAABeAQMAAAA6+qC4AAAABlBMVEX///8AAABVwtN+AAAAaElEQVR42u3LIRJAQBiA0X83kBRpi+A2jkKWdoSVzCpmKJLhNu6gEDVV4wya8L3+lIjYqJoOX7p0rcM6PoP5bsdNVC6mezazZObqU9ecVifFPngRLd9xOBwOh8PhcDgcDofD4XA4fzov9XcVvFOzTc8AAAAASUVORK5CYII=</LicensePlateBarCode> 
    </Piece> 
</Pieces> 

進入多個子節點到數據庫

這麼麻煩,我想同時輸入值

當我使用下面,我得到相同值的兩倍

//進入片放入數據庫

foreach ($xml->Pieces->children() as $plate) 
{ 
    $pl = $xml->Pieces->Piece->LicensePlate; 
    $query4 = "INSERT INTO pieceplates" 
      . " (waybill, plate) " 
      . " VALUES ('$Waybill', '$pl')"; 
      //execute the query 
    $result4 = mysql_query($query4) 
    or die("There has been a problem entering pieces."); 
    $pl = $xml->Pieces->Piece->LicensePlate; 
} 

任何幫助表示讚賞

回答

0

我假設你正在使用的SimpleXML,試試這個:

$xml = simplexml_load_string($pieces_xml); 
foreach ($xml as $piece) 
{ 
    $pl = $piece->LicensePlate; 
    $query4 = "INSERT INTO pieceplates" 
     . " (waybill, plate) " 
     . " VALUES ('$Waybill', '$pl')"; 

    //execute the query 
    $result4 = mysql_query($query4) 
    or die("There has been a problem entering pieces."); 
} 

mysql_query() BTW。自PHP 5.5起已棄用,應替換爲mysqli_query()

+0

請看我上面的回覆帖子,以大爲評論 – Mazz

+0

嗨,不,這還會添加兩次相同的輸入而不是兩個不同的值嗎? – Mazz