0

XML ファイルを解析し、その内容をデータベースに追加しようとしています。

これがコードです..

function generateDeck($userid, $db) {

    if (!$xml = simplexml_load_file('deckList.xml')) {
        trigger_error('Error reading XML file', E_USER_ERROR);
    }

    foreach ($xml as $card) {

        $id = $userid;
        $card_id = $card->card_id;
        $box_num = $card->box_num;
        $order = $card->order_num;

        $insert = "INSERT INTO decks (id, card_id, box_num, order_num) VALUES ('$id','$card_id','$box_num','$order')";
        $select = "SELECT * FROM decks ORDER BY order_num";

        mysqli_query($db, $insert) or die("SQL Error 1: " . mysqli_error($db));
        mysqli_query($db, $select) or die("SQL Error 1: " . mysqli_error($db));

    }

    mysqli_close($db);
}

ここにxmlがあります

<deck>
   <card>
      <card_id>baby</card_id>
      <box_num>1</box_num>
      <order>1</order>
   </card>
   <card>
      <card_id>selectBaby</card_id>
      <box_num>1</box_num>
      <order>2</order>
   </card>
   <card>
      <card_id>bed</card_id>
      <box_num>1</box_num>
      <order>3</order>
   </card>
   <card>
      <card_id>selectBed</card_id>
      <box_num>1</box_num>
      <order>4</order>
   </card>
   <card>
      <card_id>book</card_id>
      <box_num>1</box_num>
      <order>5</order>
   </card>
   <card>
      <card_id>selectBook</card_id>
      <box_num>1</box_num>
      <order>6</order>
   </card>
   <card>
      <card_id>cup</card_id>
      <box_num>1</box_num>
      <order>7</order>
   </card>
   <card>
      <card_id>selectCup</card_id>
      <box_num>1</box_num>
      <order>8</order>
   </card>
   <card>
      <card_id>cupboard</card_id>
      <box_num>1</box_num>
      <order>9</order>
   </card>
   <card>
      <card_id>selectCupboard</card_id>
      <box_num>1</box_num>
      <order>10</order>
   </card>
   <card>
      <card_id>daddy</card_id>
      <box_num>1</box_num>
      <order>11</order>
   </card>
   <card>
      <card_id>selectDaddy</card_id>
      <box_num>1</box_num>
      <order>12</order>
   </card>
   <card>
      <card_id>eating</card_id>
      <box_num>1</box_num>
      <order>13</order>
   </card> 
   <card>
      <card_id>mummy</card_id>
      <box_num>1</box_num>
      <order>14</order>
   </card>
   <card>
      <card_id>selectMummy</card_id>
      <box_num>1</box_num>
      <order>15</order>
   </card>
   <card>
      <card_id>plate</card_id>
      <box_num>1</box_num>
      <order>16</order>
   </card>
   <card>
      <card_id>selectPlate</card_id>
      <box_num>1</box_num>
      <order>17</order>
   </card>

.....


</deck>

ただし、XML のすべての行が画面に出力されます。:-/ 2 行を使用して、別の php ファイルからこの関数を呼び出しています。

//Generate new deck for new user
include('generateDeck.php');
generateDeck($user, $db);

xml コンテンツが画面に出力される理由を知っている人はいますか? 私の出力は..

赤ちゃん 1 1 選択赤ちゃん 1 2 ベッド 1 3 選択ベッド 1 4 本 1 5 選択本 1 6 カップ 1 7 選択カップ 1 8 食器棚 1 9 選択食器棚 1 10 パパ 1 11 選択パパ 1 12 食事 1 13 ママ 1 14 選択ママ 1 15 プレート 1 16 選択プレート 1 17 靴 1 18 selectShoe 1 19 テーブル 1 20 selectTable 1 21 ウォーキング 1 22 selectWalking 1 23 dogNose 1 24 selectDogNose 1 25 teddyEars 1 26 selectTeddyEars 1

ブラウザはレンダリング中です

<deck>
   <card>

   </card>
   <card>

   </card>
   <card>

   </card>

.....

</deck>

Firebugで確認済み

ありがとう。

(予約語の使用方法の変更を反映するように編集 (orderorder_num になりました)

4

0 に答える 0