2016-06-25 5 views
0

foreachループを使用して各フィールド(brand_id & brand_name)の値を取得し、 'pa_list_brands'テーブルに挿入する方法を教えてください。foreachを使用してテーブルに複数のフィールドを取得する方法

私はこのコードを使用する場合:

$query = db_insert('pa_list_brands')->fields(array('brand_id', 'brand_name')); 
    foreach ($data as $record) { 
    $query->values($record); 
    } 
    $query->execute(); 

を私はエラーを取得: :

"キャッチできる致命的なエラー引数1がInsertQueryに渡される::値は()指定された配列、文字列でなければなりません"だから私は、$レコードで返されていたものを見るために、このコードを試してみました:

$query = db_insert('pa_list_brands')->fields(array('brand_id', 'brand_name')); 
    foreach ($data as $record) { 
    print_r($record); 
    } 
    $query->execute(); 

そして私は、配列の結果を得る:

11Array 
(
    [0] => stdClass Object 
     (
      [brand_id] => 1 
      [brand_name] => Gildan 
     ) 

    [1] => stdClass Object 
     (
      [brand_id] => 2 
      [brand_name] => American Apparel 
     ) 

    [2] => stdClass Object 
     (
      [brand_id] => 3 
      [brand_name] => Rabbit Skins 
     ) 

    [3] => stdClass Object 
     (
      [brand_id] => 4 
      [brand_name] => Anvil 
     ) 
) 

はあなたがcode.Belowコードの下にこれを試してみてください、 アーロン

答えて

0

をいただき、ありがとうございます$クエリオブジェクトクラスの「値」関数に配列としてデータを割り当てます。

$query = db_insert('pa_list_brands')->fields(array('brand_id','brand_name')); 

foreach ($data as $key=>$record) { 

    $values[] = $record->brand_id; 
    $values[] = $record->brand_name; 
    $query->values($values); 
    $values=null; 
} 
$query->execute(); 

私に何かがある場合は教えてください。

私のコメントで提供されたリンクが役に立たない場合は、以下のコードを試してみてください。 "値"関数を機能させるには、オブジェクトを配列に変換する必要があります。

function objToArray($obj) { 
    if(!is_array($obj) && !is_object($obj)) 
     return $obj; 
    if(is_object($obj)) 
     $obj = get_object_vars($obj); 
    return 
     array_map(__FUNCTION__, $obj); 
} 
$resultarr=objToArray($data); 
if(is_array($resultarr)) 
    $resultarr=$resultarr[0]; 

$query = db_insert('pa_list_brands')->fields(array('brand_id', 'brand_name')); 
foreach ($resultarr as $record) { 
    $query->values($record); 
} 
$query->execute(); 
+0

私はあなたが提供したコードを使用して、エラーを受け取りました。 注意:48行目の "the module"の非オブジェクトのプロパティを取得しようとしています。エラーの原因となる行は次のとおりです: '$ values [] = $レコード - >ブランド名; $ values-> $ record-> brand_id; ' –

+0

このlink.https:// wwwを確認してください。 drupal.org/node/310079特定のリンクの「選択したクエリの結果に基づいて挿入する」セクションを読んでください。これはあなたにとって非常に役立ちます。ありがとう –

+0

満足していれば正しい答えを記入してください。ありがとう –

0

はここで働いていたコードです:

$data = json_decode($data); 
$data = $data->results; 

    $query = db_insert('pa_list_brands')->fields(array('brand_id', 'brand_name')); 
    foreach ($data as $key => $record) { 
    $values[] = $record->brand_id; 
    $values[] = $record->brand_name; 
    $query->values($values); 
    $values=null; 
    } 
    $query->execute(); 

は、あなたがあなたの助けと洞察力に思考のすべてのために@Jiteshありがとう!私はあなたなしでこれをすることができなかった。

関連する問題