Julien
Julien

Reputation: 619

PHP : Array to MySQL Database

I'd like to put some variables of my array into a MySQL Database.

My array is called $data and looks like this :

Array
(
[0] => Array
    (
        [created_at] => Wed Aug 20 19:38:58 +0000 2014
        [location] => Hollywood, CA
    )

[1] => Array
    (
        [created_at] => Wed Aug 20 16:45:48 +0000 2014
        [location] => Ventura County
    )

[2] => Array
    (
        [created_at] => Wed Aug 20 01:39:03 +0000 2014
        [location] => Berkeley, CA
    )

[3] => Array
    (
        [created_at] => Tue Aug 19 23:53:54 +0000 2014
        [location] => Charlotte, NC
    )

)

Then I created the MySQL "maj" with that query :

CREATE TABLE maj (id SERIAL, created_at TEXT, location TEXT)

I know how to create a variable $location and put it into the database (something like
$location= $data['location']). But I see the thing when the array is only composed of one location and not three..

So how could I do to populate my database with the three locations and the three created_at ?

Thank you !


Ok, I've edited my question by adding Aleatoric's snippet:

$get_tweets = $twitter_oauth->get (URL)
$tweets = json_encode($get_tweets);
$my_arr = json_decode($tweets, true);
$data = array();

foreach($my_arr["statuses"] as $status) {
    $data[] = array(
      "created_at" => $status["created_at"],
     "location" => $status["user"]["location"]
    );
}

$rows = [
    [
        'created_at'=>'date1',
        'location'=>'location1'
    ],[
        'created_at'=>'date2',
        'location'=>'location2'
    ]
];

foreach ($rows as $row){
    $date = $row['created_at'];
    $location = $row['location'];
    //run SQL insert
}

Upvotes: 0

Views: 98

Answers (2)

ThreeLLMsInATrenchcoat
ThreeLLMsInATrenchcoat

Reputation: 519

If you want to do something for each element in an array, you need a foreach loop, e.g.

$rows = [
    [
        'created_at'=>'date1',
        'location'=>'location1'
    ],[
        'created_at'=>'date2',
        'location'=>'location2'
    ]
];

foreach ($rows as $row){
    $date = $row['created_at'];
    $location = $row['location'];
    //run SQL insert
}

EDIT based on the updated code sample:

$get_tweets = $twitter_oauth->get (URL)
$tweets = json_encode($get_tweets);
$my_arr = json_decode($tweets, true);

//Declare the multidimensional data array which will contain the rows
$data = array();

//Populate the data array with arrays of values
foreach($my_arr["statuses"] as $status) {
$data[] = array(
    "created_at" => $status["created_at"],
   "location" => $status["user"]["location"]
  );
}

//Iterate over the data array
foreach ($data as $row){
    $date = $row['created_at'];
    $location = $row['location'];
    //run SQL insert
}

Upvotes: 1

markogrady
markogrady

Reputation: 21

If iv'e understood it correctly your accessing the first value, so try using a loop to access the remaining locations.

Upvotes: 0

Related Questions