2015-11-16 49 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