【问题标题】:Book Covers Using Existing ISBN and PHP使用现有 ISBN 和 PHP 的书籍封面
【发布时间】:2017-03-27 14:47:28
【问题描述】:

使用 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 循环,但我不确定如何或在哪里?

【问题讨论】:

    标签: php mysql codeigniter oop


    【解决方案1】:

    编辑:添加您的 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。

    注意,谷歌端可能有一些特殊的端点,但我从未使用过那个 api。

    【讨论】:

    • 从你的问题看不是这样。那么itemList() 的结果是什么?
    • 我根据您的数据编辑了原始答案。但请注意,数组循环就像任何语言的基本编程内容,您应该在做任何事情之前学习这些内容。
    猜你喜欢
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    相关资源
    最近更新 更多