使用现有ISBN和PHP预订封面

时间:2017-03-27 14:47:28

标签: php mysql codeigniter oop

使用PHP和MySQL我想根据我在数据库中的ISBN来检索书籍封面列表。

根据this answer,我可以使用以下网址;

https://www.googleapis.com/books/v1/volumes?q=isbn:0751538310

这很好用,并返回JSON响应。但是我想为10本书做这个,而不仅仅是一本 - 我怎么做到这一点?

到目前为止我的代码;

模型

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

var_dump($this->items_model->itemList())返回https://pastebin.com/nY5bFMmw

控制器

$page = file_get_contents("https://www.googleapis.com/books/v1/volumes?q=isbn:0751538310");
// I need to replace the above ISBN with the 10 from my database
$data = json_decode($page, true); 
echo "Image = " . '<img src="'.$data['items'][0]['volumeInfo']['imageLinks']['thumbnail'].'" alt="Cover">';
// This successfully prints 1 image. I need 10.

查看

// What do I need to do in order to print 10 different images
<table>
    <tr>
        <td><strong>Image</strong></td>
    </tr>
        <tr>
            <td>// image here x 10</td>         
        </tr>
</table>

我想我需要在某个地方foreach循环,但我不确定如何或在哪里?

1 个答案:

答案 0 :(得分:0)

编辑:添加var_dump后。

最简单的方法就是这样

$itemList = $this->items_model->itemList()

$data = [];
foreach ($itemList  as $book) {
    $data[] = json_decode(
        file_get_contents("https://www.googleapis.com/books/v1/volumes?q=isbn:{$book['item_isbn']}")
    );
}

然后你可以循环$ data来生成你的html。

请注意,Google端到端可能会有一些特殊的端点,但我从未使用过该API。