2017-03-23 3 views
1

Ich verwende die Google APIs Client Library for PHP, die ich derzeit mit dem Codeigniter-Framework arbeiten. Ich kann einen Buchtitel und ein Bild anzeigen, wenn ich manuell eine ISBN-Nummer im API-Code eintrage.Google APIs Bibliothek für PHP Loop

Jedes Ergebnis in der Tabelle sollte den entsprechenden Titel und das Bild aus Google Books anzeigen.

Irgendwelche Hilfe würde mit diesem geschätzt werden. Auch, wenn mein Code verbessert werden könnte, würde ich gerne hören, ich lerne immer noch :)

Mein aktueller Arbeitscode ist wie folgt;

-Controller

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); 
    } 
} 

Modell

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

Ansicht

<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> 
+0

Können Sie bitte die Ausgabe dieses 'var_dump ($ data [‘ liefern Items ']); 'und dies' var_dump ($ results); 'von Ihrem Controller. Ich werde dann antworten und antworten können. –

Antwort

2

da Sie bereits Kollektionen haben Daten, können Sie einfach auf die Ansicht übergeben und sich auf Sicht iterieren, wie:

... 
$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); 

und auf der Ansicht

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