我在列表中使用循环图像,但现在我想循环更多元素 - 即标题和描述。我该怎么做?
代码
mysql_select_db($database_connection, $connection);
$query_img = "SELECT imgname FROM img ORDER BY imgname";
$img = mysql_query($query_img, $connection) or die(mysql_error());
$row_img = mysql_fetch_assoc($img);
$totalRows_img = mysql_num_rows($img);
$query_post = "SELECT title, description FROM post";
$post = mysql_query($query_post, $connection) or die(mysql_error());
$row_post = mysql_fetch_assoc($post);
$totalRows_post = mysql_num_rows($post);
<ul>
<?php
while($row_img = mysql_fetch_assoc($img)) {
?>
<li>
<img src="images/<?php echo $row_img['imgname']; ?>">
<h3><?php echo $row_post['title']; ?></h3>
<p><?php echo $row_post['description']; ?></p>
</li>
<?php
}
?>
</ul>
答案 0 :(得分:2)
如果有很多标题,每张照片的描述只是在上面的代码中添加了另一个:
while($row_post = mysql_fetch_assoc($post)) {
echo "<h3>".$row_post['title']."</h3>";
echo "<p>".$row_post['description']."</p>";
}
我无法解决问题所在...... 如果它只是一个标题,那么desc。对于每张照片而不是更好地调整您的SQL查询以立即获取所有这些。
这就是您所需要的:
SELECT * FROM image INNER JOIN post ON post.postimage = image.imagename;
从中创建视图:
CREATE VIEW all_you_need AS <the_one_above>
你可以在PHP上轻松使用它:
SELECT * FROM all_you_need;
还有一条建议: 了解MVC术语的含义,有什么好处。您可以从头开始以自己的方式构建应用程序,或者至少为View使用一些东西(例如Smarty)。
答案 1 :(得分:1)
您可以为与post数据关联的行创建第二个while循环,但我认为您真正需要的(除了迁移到PDO或至少是mysqli方法之外)是在一个查询中一起获取数据。 / p>
此刻,您似乎正在尝试使用每个标题和说明来显示图像;如果将数据合并到一个查询中,那么您可以获得更好的结果,这样您就可以同时迭代这两个数据集。否则,您就会希望自己拥有正确的标题和说明,并使用您正在服务的图片名称。
在不了解底层数据结构的情况下,我不确定您需要的确切查询,但可能基于JOIN语法。