我正在加入 4 个表,并希望创建一个 while 循环来吐出嵌套在不同类别下的结果。
我的桌子
类别
ID | 分类名称
页面
ID | 页名 | 类别
page_content
id | page_id | image_id
图片
ID | 拇指路径
我当前的 SQL 连接
<?php $all_photos = mysql_query("
SELECT * FROM categories JOIN pages ON pages.category = categories.id
JOIN image_pages ON image_pages.page_id = pages.id
JOIN images ON images.id = image_pages.image_id
");?>
我想要的结果来自 while 循环
我想得到这样的东西......
类别 1
页 1
图片 1、图片 2、图片 3
第 2 页
图 2,图 4
类别 2
页 3
图片 1
第 4 页
图片 1,图片 2,图片 3
每个图像可以属于多个页面,每个页面可以属于多个类别。
目前我有 2 个解决方案,一个根据其中的页面数量多次列出每个类别:
例如。类别 1,第 1 页,图像 1 - 类别 1,第 1 页,图像 2 等
一个在另一个while循环中使用一个while循环,在另一个while循环中使用一个while循环,导致3个sql查询。
<?php $all_categories = mysql_query("SELECT * FROM categories");?>
<?php
while($all_category = mysql_fetch_array($all_categories)) {
?>
<h4><?=$all_category['category_name']?></h4>
<?php $all_pages = mysql_query("SELECT * FROM pages WHERE category = " . $all_category['id'] . "");?>
<?php
while($all_page = mysql_fetch_array($all_pages)) {
?>
<p><?=$all_page['page_name']?></p>
<?php $all_images = mysql_query("SELECT * FROM images JOIN image_pages ON image_pages.page_id = " . $all_page['id'] . " AND image_pages.image_id = images.id");
?>
<div class="admin-images-block clearfix">
<?php
while($all_image = mysql_fetch_array($all_images)) {
?>
<img src="<?=$all_image['thumb_path']?>" alt="<?=$all_image['title']?>"/>
<?php
}
?>
</div>
<?php
}
}
?>