utilizzare API con php

  • Creatore Discussione Creatore Discussione paolodue
  • Data di inizio Data di inizio

paolodue

Nuovo Utente
1 Dic 2012
3
0
0
Salve a tutti,

dovrei utilizzare delle API con PHP; le chiamate mi funzionano nel caso ci sia un ritorno di un unico valore ma non riesco a farle funzionare quando viene ritornato un array.

Questo il funzionamento delle api:

All the example in this document use the GET method.
All response are send in JSON format with an “application/json” MIME type.

Questo è un esempio funzionante:

PHP:
$url = "http://www.nomedominio.it/getEsameById.php?id=".$song_id.";

if ( !$result = file_get_contents($url)) throw new Exception('Unable to load '.$url);
if ( !$esame = json_decode($result)) throw new Exception('Unable to decode JSON:<br>'.$result);

con questo comando stampo il nome studente:

PHP:
<?= $esame->studente->nome; ?>

Il problema nasce quando devo ricevere più valori dall'esecuzione dell'api, esempio "tutti gli esami di uno studente":

PHP:
$url = "http://www.nomedominio.it/getAllEsamiBystudente.php?id=".$song_id.";

if ( !$result = file_get_contents($url)) throw new Exception('Unable to load '.$url);
if ( !$esame = json_decode($result)) throw new Exception('Unable to decode JSON:<br>'.$result);

con questo comando dovrei stampare i nomi degli studenti con le date MA purtroppo non funziona:

PHP:
<?= $esame[0]->studente->nome; ?> 
<?= $esame[0]->studente->data_esame; ?> 
<?= $esame[1]->studente->nome; ?> 
<?= $esame[1]->studente->data_esame; ?> 
<?= $esame[2]->studente->nome; ?> 
<?= $esame[2]->studente->data_esame; ?>

Secondo voi sbaglio la sintassi per riferirmi ai valori dell'array?

Nella documentazione delle API non vengono specificati i nomi dei valori e delle proprietà degli oggetti restituiti dalla chiamate API, esiste in php un sistema per vederle?

Grazie
 
Ultima modifica di un moderatore:
Allora facendo un:

PHP:
print_r($esame);

ottengo il seguente output:

HTML:
tdClass Object ( [query] => stdClass Object ( [start] => 0 [end] => 99 [limit] => 100 [total] => 78348 ) [result] => Array ( [0] => stdClass Object ( [id] => 29 [name] => paolo) [1] => stdClass Object ( [id] => 76 [name] => Amanda) [2] => stdClass Object ( [id] => 3 [name] => Mario)  ) )

Come faccio ad estrarre e mettere in una variabile il valore [totall] ovvero 78348?

Qualche dritta per ciclare [result] e stampare i nomi degli alunni?

grazie
 

Discussioni simili