我正在尝试根据来自两个不同表的信息从 API 中提取数据,然后再循环通过 foreach 并将这些数据解析到查询中。我已经构建了一系列查询,可以得到我正在寻找的确切数据(数组中第一部电影的名称和海报),但是当将此数据解析到返回一系列电影列表的 foreach 中时,我预定义的变量只被带回数组中的最终列表,而不是像预期的那样循环遍历它们。
这是我到目前为止所得到的:
加工:
// Get a user's Watchlists from the watchlists table
$query = "SELECT * FROM watchlists WHERE user_id = " . $profile_info['id'];
$watchlist_result = mysql_query($query);
$watchlists = array();
while(($row = mysql_fetch_assoc($watchlist_result))) {
$watchlists[] = $row;
}
// Count how many Watchlists a user has
$watchlist_count = count($watchlists);
// Echo details of each Watchlist
echo "<pre>";
print_r($watchlists);
echo "</pre>";
// For each Watchlist, select all of the films it contains and echo them out
foreach ($watchlists as $key => $films) {
// Get each Watchlist's ID from the watchlists table
$watchlist_id = $films['watchlist_id'];
echo "<pre>";
print_r($watchlist_id);
echo "</pre>";
// Extract films from the watchlist_films table for each Watchlist, based on its unique ID and put them into an array
$watchlist_film_query = "SELECT * FROM watchlist_films WHERE watchlist_id = " . $watchlist_id;
$watchlist_film_result = mysql_query($watchlist_film_query);
$watchlist_films = array();
while(($row = mysql_fetch_assoc($watchlist_film_result))) {
$watchlist_films[] = $row;
}
// Echo the new array
echo "<pre>";
print_r($watchlist_films);
echo "</pre>";
// Get the ID of the first film in each Watchlist
$rt_id = $watchlist_films[0]['film_id'];
// Echo the ID
echo "<pre>";
print_r($rt_id);
echo "</pre>";
// Initialise Rotten Tomates API
include_once('/api/RottenTomatoes.php');
/* Rotten Tomatoes */
$rottenTomatoes = new RottenTomatoes('2b2cqfxyazbbmj55bq4uhebs', 10, 'uk');
// Search Rotten Tomatoes for details on the first film in the array
$rottenTomatoes->movieSearch($rt_id);
//echo "<pre>";
try {
$result = $rottenTomatoes->getMovieInfo($rt_id);
//print_r($result);
} catch (Exception $e) {
//print_r($e);
}
//echo "</pre>";
// Get poster and name of first movie in array
$thumbnail = $result['posters']['thumbnail'];
$first_film_name = $result['title'];
echo "<pre>";
print_r($thumbnail);
echo "</pre>";
echo "<pre>";
print_r($first_film_name);
echo "</pre>";
}
现在,我想将此信息解析为实际页面,并打印出用户拥有的每个监视列表的所有信息。
输出:
if ($watchlist_count != 0) {?>
<ul class="unstyled"><?php
foreach($watchlists as $key => $watchlist_item) {?>
<li class="well list-item clearfix"><?php
echo "<pre>";
print_r($watchlist_item);
echo "</pre>";
echo "<pre>";
print_r($watchlist_films);
echo "</pre>";
echo "<pre>";
print_r($watchlist_id);
echo "</pre>";
echo "<pre>";
print_r($thumbnail);
echo "</pre>";
echo "<pre>";
print_r($first_film_name);
echo "</pre>";?>
<div class="row-fluid">
<a href="watchlist.php?id=<?php echo $watchlist_item['watchlist_id']; ?>" title="<?php echo $watchlist_item['name']; ?> Watchlist">
<img src="<?php echo $thumbnail; ?>" class="span1 pull-left" alt="<?php echo $first_film_name; ?> poster" title="<?php echo $first_film_name; ?> poster" />
</a>
<div class="span11 movie-info">
<p class="search-title"><a href="watchlist.php?id=<?php echo $watchlist_item['watchlist_id']; ?>" title="<?php echo $watchlist_item['name']; ?> Watchlist"><?php echo $watchlist_item['name']; ?></a></p>
<p class="search-synopsis"><?php echo $watchlist_item['description']; ?></p>
</div>
</div>
</li><?php
}?>
</ul><?php
} else {?>
<div class="well list-item">
You haven't created any Watchlists yet! Why not visit a movie page now and build your first?
</div><?php
}?>
我遇到的问题是,虽然处理部分得到了我想要的东西(即每个监视列表中第一部电影的名称和缩略图),但当我将此信息解析到输出中时,只有名称和海报显示最后一个 Watchlist 中的第一部电影,如下所示: