2009-06-18 9 views
0

内のデータを解析され、私はこのために次のコードを使用しています:問題は、私はPHPのDOMを使ってXMLを解析して、MySQLのテーブルにこのデータを挿入しようとしているMySQLのtabel

<?php 
$xmlDoc = new DOMDocument(); 
$xmlDoc->load("testrtap11.xml"); 
mysql_select_db("zeeshan_database1", $con); 

$x=$xmlDoc->getElementsByTagName('RECORD'); 
$z=$xmlDoc->getElementsByTagName('TITLE'); 
$w=$xmlDoc->getElementsByTagName('PRIMARY_AUTHOR'); 
$y=$xmlDoc->getElementsByTagName('JOURNAL_CONFERENCE'); 

for($i=0; $i<=$x->length-1; $i++) 
{ 
    $sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES('$z->item($i)->nodeValue','$w->item($i)->nodeValue','$y->item($i)->nodeValue')"; 

    if (!mysql_query($sql,$con)) 
    { 
     die('Error: ' . mysql_error()); 
    } 
    echo "1 record added"; 
} 

mysql_close($con) 
?> 

をデータが入力されています正しくありません。私は変数に自分のxml解析値を格納しようとしても、その変数を使ってデータを挿入しようとしても、うまくいきません。私はこのような変数を使用:

for($i=0; $i<=$x->length-1; $i++) 
{ 
    $zz=$z->item($i)->nodeValue); 
    $ww=$w->item($i)->nodeValue); 
    $yy=$y->item($i)->nodeValue); 
    $sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES('$zz','$ww','$yy')"; 

    if (!mysql_query($sql,$con)) 
    { 
     die('Error: ' . mysql_error()); 
    } 
    echo "1 record added"; 
} 

私のXMLは次のようになります。

<RTAP> 
    <RECORD> 
    <TITLE>    </TITLE> 
    <PRIMARY_AUTHOR>  </PRIMARY_AUTHOR> 
    <JOURNAL_CONFERENCE> </JOURNAL_CONFERENCE> 
    </RECORD> 
</RTAP> 

親切に、私を助けて、私はこの

ベスト Zeeshan

+0

実際に保存されたデータと実際に保存されたデータを含めてください。 –

+0

最初に値をデバッグまたは印刷しようとしましたか? –

答えて

2

に何をすべきは何かを試してみてくださいこのように:

foreach ($xmlDoc->RECORD as $record) 
{ 
    $sql = 'INSERT INTO Persons (FirstName, LastName, Age) VALUES(' 
     . '"' . mysql_escape_string($record->TITLE->nodeValue) . '", ' 
     . '"' . mysql_escape_string($record->PRIMARY_AUTHOR->nodeValue) . '", ' 
     . '"' . mysql_escape_string($record->JOURNAL_CONFERENCE->nodeValue) . '")' 

    if (!mysql_query($sql,$con)) 
     die('Error: ' . mysql_error()); 

    echo "1 record added"; 
} 
$結果=するmysql_query(「人SELECT * FROM」):私は、私は上記の私の元のコードにselectコマンドを使用してみました

あなたが実際に...挿入のデータと間違って何

+0

私はselectコマンドを使ってみました: $ result = mysql_query( "SELECT * FROM Persons"); \t while($ row = mysql_fetch_array($ result)) \t { \t \t echo $ row ['FirstName']。 "" $ row ['LastName']; \t \tエコー "
"; \t} そして、これは私が得た出力である: (0) - >のnodeValue(0) - >のnodeValue (1) - >のnodeValue(1) - >のnodeValue (2) - >のnodeValue(2) - > nodeValue (3) - > nodeValue(3) - > nodeValue –

+0

Gregあなたのコードで言及した$レコードは何ですか? は、私が鉱山コードで使用している$ z-> item($ i) - > nodeValueのようです。 しかし、あなたの声明は何らかの理由で動作していません。私は理解できません。 –

+0

gregありがとう、あなたのコードはちょっとした変更があってもうまくいきました。 thanks to alot。 ありがとう。 Zeeshan –

0

を言うことはありません; while($ row = mysql_fetch_array($ result)) { echo $ row ['FirstName']。 "" $ row ['LastName']; echo "
"; }

そして、これは私が得た出力である: (0) - >のnodeValue(0) - >のnodeValue (1) - >のnodeValue(1) - >のnodeValue (2) - >のnodeValue(2) - > nodeValue (3) - > nodeValue(3) - > nodeValue

関連する問題