2011-12-31 19 views
0

私はmysqlデータベースにXMLデータを挿入しようとしています。問題は、各タグ内に複数のIDがあるため、スクリプトが最初に読み込まれるだけです。すべてのIDをdbにロードするためにスクリプトを書き直すにはどうすればいいですか?簡単なXMLリストをmySQLに挿入

<?php 

require_once 'db-functions.inc.php' ; //custom database functions 

$xmldata = 'http://api.twitter.com/1/followers/ids.xml?cursor=-1&screen_name=aplusk'; 
$open = fopen($xmldata, 'r'); 
$content = stream_get_contents($open); 
fclose($open); 
$xml = new SimpleXMLElement($content); 

foreach ($xml->ids as $data) 

{ 

$id = $data->id; 

mysql_query("INSERT INTO data (id) 

VALUES ('$id')"); 

}; 


// sample of xml I want to insert 
// <id_list> 
// <ids> 
// <id>275168965</id> 
// <id>28245852</id> 
// <id>15112249</id> 
// </ids> 
// <next_cursor>0</next_cursor> 
// <previous_cursor>0</previous_cursor> 
// </id_list> 

?> 
+0

なぜ新しいSimpleXMLElement()を2回呼び出すのですか?また、データから見えるように、 'id_list'ではなく' ids'要素を 'foreach'する必要があります:' foreach($ twelement-> id_list-> idは$ data) '' id_list'はidを含む 'ids'要素とは対照的に、実際にはただ一つの要素しか持っていません。 – Yaniro

+0

上記のforeach($ twelement-> id_list-> idsを$ dataとして)のようにforeachを編集するとエラーが表示されます。 – WAUS

答えて

0

ここであなたがそれを行う必要があります方法は次のとおりです。

$xml = new SimpleXMLElement(file_get_contents('http://api.twitter.com/1/followers/ids.xml?cursor=-1&screen_name=aplusk')); 
foreach ($xml->ids[ 0 ] as $data) 
{ 
    echo($data . "<br>"); 
} 

それは全く直感的ではないのですが、IDが[0] $ XML-> IDSの内側に隠れています。 あなたのSQLステートメントは上手く見えます。

+0

多くのおかげで、うまくいきます。 – WAUS

関連する問題