2016-06-13 3 views
0

Ich habe ein Array, das wie dieses ich meinen Kopf den ganzen Tag Cracken haben versuchtEinfügen von sowohl Key und den Wert eines multidimensionalen Arrays in MySQL-Tabelle

Array 
(
    [0] => Array 
     (
      [post_id] => 5410 
      [Issue] => 201 
      [volume] => 2 
      [pages] => 105-9 
      [authors] => Onger, M., Jaluth, K. 
      [publication_date] => 17 January 2016 
      [journals] => Nature Medicine 
      [link_to_pubmed] => http://www.ncbi.nlm.nih.gov/pubmed/1 
     ) 
    [1] => Array 
     (
      [post_id] => 5411 
      [Issue] => 301 
      [volume] => 7 
      [pages] => 32-9 
      [authors] => Onger, M., Jaluth, K. 
      [publication_date] => March 30 
      [journals] => Lancet 
      [link_to_pubmed] => http://www.ncbi.nlm.nih.gov/pubmed/2 
     ) 
     ) 

schaut, um herauszufinden, wie ich beide einfügen der Schlüssel und der Wert zu bekommen etwas, das der Code wie folgt

+---------+---------+-------------------+-----------------------+ 
| meta_id | post_id | meta_key   | meta_value   | 
+---------+---------+-------------------+-----------------------+ 
| 190143 | 5410 |Issue    | 201     | 
| 190141 | 5410 |volume    | 2      | 
| 190140 | 5410 |pages    | 105-109    | 
| 190139 | 5410 |authors   | Onger, M., Jaluth, K. | 
| 190144 | 5410 |publication_date | 17 January 2016  | 
| 190136 | 5410 |journals   | Nature Medicine  | 
| 190135 | 5410 |link_to_pubmed  |      | 
|   |   |     |      | 
+---------+---------+-------------------+-----------------------+ 

sieht i verwendet haben, ist sehr ähnlich wie die einer here beschrieben und kann unter

zu sehen 10

Wie bekomme ich den Schlüssel und die Werte?

+2

Welche Code haben Sie versucht? – splash58

+1

Ein paar 'foreach's mit einem INSERT in ihnen verschachtelt, simplez. Mit welchem ​​spezifischen Teil bist du festgefahren? –

+0

@ splash58 Ich habe den Post/die Frage für einen Schnappschuss des Codes bearbeitet – tapeli

Antwort

1

Wenn meta_id ein autoincrement Feld, dann

foreach($publications as $publication) { 
    // Get post_id and remive it from array 
    $post_id = $publication['post_id']; 
    unset($publication['post_id']); 
    foreach ($publication as $key => $metadata) { 
     // Below a query. I only print it, you need to execute it 
     echo $query = 'insert into table (post_id, meta_key, meta_value) 
         values ($post_id, "' . $key . '", "' . $metadata . '")'; 
     } 
} 
+0

Dies sollte für Sie arbeiten. – mishka

+0

brilliantes Zeug @ splash58. Das ist, was ich gesucht habe. Ich dachte nie auf eine Lösung in der gleichen Weise, wie Sie dachten ..... Danke! – tapeli

0

Sie können es nicht mit 1 Abfrage tun. Sie müssen die Schleife des Arrays ausführen und in jeder Zeile INSERT mysql ausführen.

Verwandte Themen