2011-10-21 13 views
0

私は誰かが私を助けることができるかどうか疑問に思う。INSERT IGNOREの場合

私はXMLファイルからデータを取り出し、そのデータをmySQLデータに入れるPHPスクリプトを作成しようとしています。私は数日間このことに取り組んできましたが、私はまだこの権利を得ることができません。

これは、私が一緒に入れて管理しているコードです:

<? 

     $objDOM = new DOMDocument(); 
     $objDOM->load("xmlfile.xml"); 

     $Details = $objDOM->getElementsByTagName("Details"); 

     foreach($Details as $value) 
     { 

     $listentry = $value->getElementsByTagName("listentry"); 
     $listentrys = $listentry->item(0)->nodeValue; 

     $sitetype = $value->getElementsByTagName("sitetype"); 
     $sitetypes = $sitetype->item(0)->nodeValue; 

     $sitedescription = $value->getElementsByTagName("sitedescription"); 
     $sitedescriptions = $sitedescription->item(0)->nodeValue; 

     $siteosgb36lat = $value->getElementsByTagName("siteosgb36lat"); 
     $siteosgb36lats = $siteosgb36lat->item(0)->nodeValue; 

     $siteosgb36lon = $value->getElementsByTagName("siteosgb36lon"); 
     $siteosgb36lons = $siteosgb36lon->item(0)->nodeValue; 

     //echo "$listentrys :: $sitetypes :: $sitedescriptions :: $siteosgb36lats ::   $siteosgb36lons <br>"; 


     } 

    require("phpfile.php"); 

    //Opens a connection to a MySQL server 
    $connection = mysql_connect ("hostname", $username, $password); 
    if (!$connection) { 
    die('Not connected : ' . mysql_error()); 
    } 

    // Set the active MySQL database 
    $db_selected = mysql_select_db($database, $connection); 
    if (!$db_selected) { 
    die ('Can\'t use db : ' . mysql_error()); 
    } 

    mysql_query("INSERT IGNORE INTO scheduledsites (listentry, sitetype, sitedescription, siteosgb36lat, siteosgb36lon) VALUES('$listentrys','$sitetypes','$sitedescriptions','$siteosgb36lats','$siteosgb36lons') ") 
or die(mysql_error()); 


    echo "Data Inserted!"; 


?> 

私はXMLファイルからデータを引き出すことができますが、それは私のデータベーステーブルにデータを送信するスクリプトの一部です私は問題を抱えています。

スクリプトは実行されますが、最後のレコードだけがデータベースに保存されます。

xmlファイルのフィールドを問題なく解析することができます。新しいデータに 'listentry'という数字があれば、テーブルにすでにあるものと一致する「listentry」番号がありますそのレコードをテーブルに追加する、つまり無視することは望ましくありません。

私はちょうど誰かがこれを見て、私がどこに間違っているのかを教えてもらえるかどうか疑問に思った。あなたは一度だけmysql_queryを呼び出している

感謝

+0

インデックスを使用してDB構造を表示 – user973254

答えて

2

。したがって、1行しか挿入されません。

sqlはループ内にある必要があります。

+0

私の投稿に返信いただきありがとうございます。お詫び申し上げます。私はこれについて本当に新しいです、少し心配してください。種類については – IRHM

+0

こんにちは、それを働いた。そこの愚かな瞬間のビット。敬具。 – IRHM

関連する問題