Что ж, результат, возвращаемый wardgraphics.com, является объектом, а не массивом. Таким образом, вы не можете использовать foreach (если вы не реализуете интерфейс итератора). Попробуйте напечатать просто $output->overview
Я посмотрел на ваш вывод coolection.php. Все, что вам нужно сделать, это поместить все фильмы в массив, прежде чем кодировать его в формате JSON, например.
$movies = array();
$movies[] = $movie1;
$movies[] = $movie2;
$movies[] = $movie3;
echo json_encode($movies);
вместо
echo json_encode($movie1);
echo json_encode($movie2);
echo json_encode($movie3);
Если у вас нет доступа к coolection.php, вы можете получить отдельные объекты, разделив вывод, например:
$objects = explode('}', $output);
foreach ($objects as $object){
$movie = json_decode($object.'}');
echo "<p>This movie title is: " . $movie->overview . "</p>";
}
Это не идеально, так как этот метод завершится ошибкой, если какие-либо данные внутри объекта JSON содержат символ "}". Поэтому, чтобы быть в безопасности, здесь лучше использовать регулярные выражения с правильной проверкой на выходы.
Вот исправленный код вашего php-файла:
header('Content-type: application/json');
mysql_connect('serv', 'user', 'password');
mysql_select_db('name');
include('databasefile.php');
//'json' is set as default return format
$tmdb = new TMDb('key');
$check_collection = mysql_query("SELECT * FROM collections WHERE user_id = '$_REQUEST[user]' ORDER BY id");
$allMovies = array(); // Initializing a variable to hold all movies
while ($looped = mysql_fetch_assoc($check_collection)) {
$id = $looped[movie_id];
//Search Movie with other return format than the default
$json_movies_result = $tmdb->getMovie($id);
// Convert JSON to array of objects
$movies = json_decode($json_movies_result);
foreach ($movies AS $movie)
{
foreach($movie->posters as $poster)
{
if ($poster->image->size == 'cover') {
$poster_url = $poster->image->url;
}
}
$id = $movie->id;
$json_extra = $tmdb->getMovie($id);
$extra_info = json_decode($json_extra);
foreach($extra_info AS $extra)
{
// convert json results into new php array
$collection_array = array("title" => $movie->original_name, "released" => $movie->released, "trailer" => $extra->trailer, "runtime" => $extra->runtime, "overview" => $movie->overview, "poster" => $poster_url);
}
}
$allMovies[] = $collection_array; // adding movie to the array of all movies
}
echo json_encode($allMovies); // printing json encoded array of all movies
Теперь вы можете использовать исходный скрипт для отображения результатов.