我想把数组中每部电影的图像、标题和评级放到一个<ul> <li>
但我只能让它把第一部电影、标题和评级放进去。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?php
require_once 'init.php';
require_once 'sessionCheck2.php';
$query = $con ->query
("
SELECT movies.id, movies.image, movies.movie_name, AVG(user_movie_ratings.rating) AS rating
FROM movies
LEFT JOIN user_movie_ratings
ON movies.id = user_movie_ratings.movie_id
GROUP BY movies.id
");
$movieTitle = array();
while($row = $query->fetch_object()) {
$movieTitle[] = $row;
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Home</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<div id="wrapper">
<div id="header">
<div id="h1">
</div>
<div id="login">
<?php //include 'loginCheck.php';?>
<?php include 'login.php';?>
</div>
</div>
<div id ="movies">
<?php foreach($movieTitle as $movie):?>
<?php echo "<ul> <li>" .'<img src="'.$movie->image.'"/>';?>
<div class = "cFFF">
<?php echo $movie->movie_name; ?>
</div>
<div class="s11 c999">
Rating: <?php echo round($movie->rating); ?>
</div>
<?php echo "</li> </ul>"; ?>
</div>
<?php endforeach; ?>
<div id="footer">
This is the Footer
</div>
</div>
</body>
</html>
只需从逻辑上考虑一下您打开<ul>
和<li>
的位置与关闭它们的位置(即它应该在循环中还是外部,显然它不应该在打开和关闭时反转,无论是打开和关闭都进入循环还是在循环之外,而不是一个输入和一个输出)并修复关闭时<?ul>
的错别字。
并且不要喜欢<ul><li><div></li></ul></div>
您需要按照打开标签的顺序关闭标签。 J.F. <ul><li><div></div></li></ul>
我想你想做什么:
<div id="movies">
<ul>
<?php
foreach($movieTitle as $movie)
{
echo '<li>';
echo '<img src="' . $movie->image . '" />';
echo '<div class="cFFF">' . $movie->movie_name . '</div>';
echo '<div class="s11 c999">Rating: ' . round($movie->rating) . '</div>';
echo '</li>';
}
?>
</ul>
</div>
您也可以使用以下php语句打印$movieTitle数组的输出来检查:
回声计数($movieTitle);
确保您的 MySQL JOIN 返回正确的结果。