【问题标题】:How to fetch data from array and insert to database如何从数组中获取数据并插入数据库
【发布时间】:2016-04-10 07:26:40
【问题描述】:

您好,我遇到了与数组相关的问题,我正在尝试请求图形 api 并将数据保存在数据库中。这是我的数组

Array
(
[threadId] => t_mid.1445648572476:316f06a4adc6d7dd57
[sender] => Array
    (
        [0] => Array
            (
                [0] => stdClass Object
                    (
                        [name] => rajesh Prasad Shah
                        [email] => 543634645764577@facebook.com
                        [id] => 543634645764577
                    )

                [1] => stdClass Object
                    (
                        [name] => rjtest
                        [email] => 849929567895403@facebook.com
                        [id] => 849929567895403
                    )

            )

    )

[messages] => Array
    (
        [messages] => Array
            (
                [0] => Array
                    (
                        [message] => Same to u dear.
                        [from] => stdClass Object
                            (
                                [name] => rajesh Prasad Shah
                                [email] => 543634645764577@facebook.com
                                [id] => 543634645764577
                            )

                        [created_time] => 2015-12-31T11:31:24+0000
                        [id] => m_mid.1451561484487:5b3276ddd9d86d1480
                        [to] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => rjtest
                                                [email] => 849929567895403@facebook.com
                                                [id] => 849929567895403
                                            )

                                    )

                            )

                        [tags] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => inbox
                                            )

                                        [1] => stdClass Object
                                            (
                                                [name] => source:chat
                                            )

                                    )

                            )

                    )

                [1] => Array
                    (
                        [message] => Happy New Year to all of you
                        [from] => stdClass Object
                            (
                                [name] => rjtest
                                [email] => 849929567895403@facebook.com
                                [id] => 849929567895403
                            )

                        [created_time] => 2015-12-31T10:37:47+0000
                        [id] => m_mid.1451558267514:4c017e5a1f8e997586
                        [to] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => rajesh Prasad Shah
                                                [email] => 543634645764577@facebook.com
                                                [id] => 543634645764577
                                            )

                                    )

                            )

                        [tags] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => inbox
                                            )

                                        [1] => stdClass Object
                                            (
                                                [name] => read
                                            )

                                        [2] => stdClass Object
                                            (
                                                [name] => sent
                                            )

                                        [3] => stdClass Object
                                            (
                                                [name] => source:web
                                            )

                                    )

                            )

                    )

                [2] => Array
                    (
                        [message] => Happy New Year to all of you
                        [from] => stdClass Object
                            (
                                [name] => rjtest
                                [email] => 849929567895403@facebook.com
                                [id] => 849929567895403
                            )

                        [created_time] => 2015-12-31T09:44:49+0000
                        [id] => m_mid.1451555089630:1036078c7bcabeed78
                        [to] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => rajesh Prasad Shah
                                                [email] => 543634645764577@facebook.com
                                                [id] => 543634645764577
                                            )

                                    )

                            )

                        [tags] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => inbox
                                            )

                                        [1] => stdClass Object
                                            (
                                                [name] => read
                                            )

                                        [2] => stdClass Object
                                            (
                                                [name] => sent
                                            )

                                        [3] => stdClass Object
                                            (
                                                [name] => source:web
                                            )

                                    )

                            )

                    )

                [3] => Array
                    (
                        [message] => Happy New Year to all of you
                        [from] => stdClass Object
                            (
                                [name] => rjtest
                                [email] => 849929567895403@facebook.com
                                [id] => 849929567895403
                            )

                        [created_time] => 2015-12-31T09:43:28+0000
                        [id] => m_mid.1451555008621:62c3365e35ededc773
                        [to] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => rajesh Prasad Shah
                                                [email] => 543634645764577@facebook.com
                                                [id] => 543634645764577
                                            )

                                    )

                            )

                        [tags] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => inbox
                                            )

                                        [1] => stdClass Object
                                            (
                                                [name] => read
                                            )

                                        [2] => stdClass Object
                                            (
                                                [name] => sent
                                            )

                                        [3] => stdClass Object
                                            (
                                                [name] => source:web
                                            )

                                    )

                            )

                    )

                [4] => Array
                    (
                        [message] => Very Good
                        [from] => stdClass Object
                            (
                                [name] => rajesh Prasad Shah
                                [email] => 543634645764577@facebook.com
                                [id] => 543634645764577
                            )

                        [created_time] => 2015-09-01T09:13:34+0000
                        [id] => m_mid.1445648574720:c2746f8b55fff17369
                        [to] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => rjtest
                                                [email] => 849929567895403@facebook.com
                                                [id] => 849929567895403
                                            )

                                    )

                            )

                        [tags] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => inbox
                                            )

                                        [1] => stdClass Object
                                            (
                                                [name] => read
                                            )

                                        [2] => stdClass Object
                                            (
                                                [name] => source:chat
                                            )

                                    )

                            )

                    )

                [5] => Array
                    (
                        [message] => Good
                        [from] => stdClass Object
                            (
                                [name] => rajesh Prasad Shah
                                [email] => 543634645764577@facebook.com
                                [id] => 543634645764577
                            )

                        [created_time] => 2015-09-01T09:13:32+0000
                        [id] => m_mid.1445648572476:316f06a4adc6d7dd57
                        [to] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => rjtest
                                                [email] => 849929567895403@facebook.com
                                                [id] => 849929567895403
                                            )

                                    )

                            )

                        [tags] => stdClass Object
                            (
                                [data] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => inbox
                                            )

                                        [1] => stdClass Object
                                            (
                                                [name] => read
                                            )

                                        [2] => stdClass Object
                                            (
                                                [name] => source:chat
                                            )

                                    )

                            )

                    )

            )

    )

)

这是我从中获取数据的 php 代码

foreach($data as $evaluatemessage){
   //echo "<pre>";print_r($evaluatemessage); die;
 $inbox=array();
  $inbox['thread_id']=$evaluatemessage['threadId'];
  foreach($evaluatemessage['messages'] as $messagedet){
    //print_r($messagedet[0]['id']); die;
  $inbox['smg_id']=$messagedet[$j]['id'];
  $inbox['body']=$messagedet[$j]['message'];
  $inbox['time']=$messagedet[$j]['created_time'];

  //$inbox['msg_type']=$data;
 //$inbox['user_id']=$data;
  $inbox['From_name']=$messagedet[$j]['from']->name;
   $inbox['To_name']=$messagedet[$j]['to']->data[0]->name;
   $inbox['From_id']=$messagedet[$j]['from']->id;
   $inbox['To_id']=$messagedet[$j]['to']->data[0]->id;


  $inbox['tags']=$messagedet[$j]['tags']->data[1]->name;
 //$inbox['Page_id']=$data;
 //echo "<pre>";print_r($inbox); die;
 $inbox['Page_id']='12345';
   $this->facebook_inboxes->save($inbox);
   $j++;
  }


 $i++;
 }

当我使用此代码时,只保存了一个 threadid 和单个消息内容。但其余的不是,我希望每个线程 id 都有所有消息 id 和消息正文逐行保存,但任何人都无法做到这一点帮助我如何做到这一点。

【问题讨论】:

    标签: php mysql arrays


    【解决方案1】:

    messages 数组中还有另一个messages 数组。所以根据你的数组结构,你的第二个循环会是这样的:

    foreach($evaluatemessage['messages']['messages'] as $messagedet){
    
      //print_r($messagedet[0]['id']); die;
      $inbox['smg_id']=$messagedet[$j]['id'];
      $inbox['body']=$messagedet[$j]['message'];
      $inbox['time']=$messagedet[$j]['created_time'];
    
    .
    .
    .
    
    }
    

    而你只使用:

    foreach($evaluatemessage['messages'] as $messagedet){}
    

    这里是完整的代码:

    foreach($data as $evaluatemessage){
       //echo "<pre>";print_r($evaluatemessage); die;
     $inbox=array();
      $inbox['thread_id']=$evaluatemessage['threadId'];
      foreach($evaluatemessage['messages']['messages'] as $messagedet){
        //print_r($messagedet[0]['id']); die;
      $inbox['smg_id']=$messagedet[$j]['id'];
      $inbox['body']=$messagedet[$j]['message'];
      $inbox['time']=$messagedet[$j]['created_time'];
    
      //$inbox['msg_type']=$data;
     //$inbox['user_id']=$data;
      $inbox['From_name']=$messagedet[$j]['from']->name;
       $inbox['To_name']=$messagedet[$j]['to']->data[0]->name;
       $inbox['From_id']=$messagedet[$j]['from']->id;
       $inbox['To_id']=$messagedet[$j]['to']->data[0]->id;
    
    
      $inbox['tags']=$messagedet[$j]['tags']->data[1]->name;
     //$inbox['Page_id']=$data;
     //echo "<pre>";print_r($inbox); die;
     $inbox['Page_id']='12345';
       $this->facebook_inboxes->save($inbox);
       $j++;
      }
    
    
     $i++;
     }
    

    【讨论】:

    • hello threadid t_mid.1445648572476:316f06a4adc6d7dd57 数据已插入,但 threr 是另外 3 个未插入数据的线程 id。
    • 但是你给的数组中没有其他的'threadid t_mid'。
    • 然后提供具有所有三个 threadid 的完整数组,我会更新我的答案
    【解决方案2】:

    在保存函数之前写下这段代码

    $this->facebook_inboxes->create();
    

    这是蛋糕的enbuild功能来存储多行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多