用于PHP循环的Google API库

时间:2017-03-23 17:20:43

标签: php mysql arrays codeigniter google-api-php-client

我正在使用我目前使用Codeigniter框架的Google APIs Client Library for PHP。当我在API代码中手动输入ISBN号时,我能够显示书名和图像。

表格中的每个结果都应显示来自Google图书的相应标题和图片。

任何帮助都将受到赞赏。此外,如果我的代码可以改进,我很乐意听,我还在学习:)。

我目前的工作代码如下;

控制器

class Items extends CI_Controller {

    public function index() {
        $data['items'] = $this->items_model->itemList(); 
// var_dump($data['items']) returns the following (http://pastebin.com/4XVS4Whb)

        $client = new Google_Client();
        $client->setApplicationName("Client_Library_Examples");
        $client->setDeveloperKey("MyKeyHere");
        $service = new Google_Service_Books($client);
        $isbn = '0-7515-3831-0'; // <- I need to replace this with my DB array
        $results = $service->volumes->listVolumes($isbn);

        foreach ($results as $item) {
// var_dump($results) returns the following (http://pastebin.com/by50uLNq)
// var_dump($item) returns the following (http://pastebin.com/b4vdt38P)

            $bookTitle = $item['volumeInfo']['title'];
            $bookImage = $item['volumeInfo']['imageLinks']['smallThumbnail'];
            $data['bookTitle'] = $bookTitle;
            $data['bookImage'] = $bookImage;
        }
        $this->load->view('item_view', $data);
    }
}

模型

class Items_model extends CI_Model {
    public function itemList() {
        $query = $this->db->get('item', 10);
        return $query->result_array();
    }   
}

查看

<table>
        <tr>
           <td><strong>Title</strong></td>
           <td><strong>Image</strong></td>
        </tr>
        <tr>
            <td><?php echo $bookTitle ?></td>         
            <td><?php echo echo '<img src="'.$bookImage.'">';?></td>    
        </tr>
</table>

1 个答案:

答案 0 :(得分:2)

因为您已经拥有了Collections数据,所以您只需将其传递给视图并迭代视图本身,如下所示:

...
$service = new Google_Service_Books($client);
$isbn = '0-7515-3831-0'; 
$results = $service->volumes->listVolumes($isbn);
//pass in the $results to you view
$this->load->view('item_view', $results);

并在视图上

foreach ($results as $item) : ?>
    <td><?php echo $item['volumeInfo']['title']; ?></td> 
    ....
<?php endforeach; ?>