我正在加入4个表,并希望创建一个while循环,它会将嵌套在不同类别下的结果吐出来。
我的表格
类别
id | CATEGORY_NAME
页
id | page_name |类
PAGE_CONTENT
id | page_id | image_id
图像
id | thumb_path
我当前的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页
image 1
第4页
图像1,图像2,图像3
每个图片都可以归入多个页面,每个页面可以归入多个类别。
目前我有两个解决方案,一个根据其中的页面数量多次列出每个类别:
例如。类别1,第1页,图像1 - 类别1,第1页,图像2等
在另一个循环中使用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
}
}
?>
答案 0 :(得分:1)
我认为第二种解决方案更好,更直接。 你可以这样做:
更新
<?php
$all_cats=mysql_query("select * from categories");
while($all_cat = mysql_fetch_array($all_cats)){
//print your cat title
$check = mysql_query("select * from images i, pages p, page_content pc categories c where c.id = p.category and p.id = pc.page_id and pc.image_id=i.id");
if(mysql_num_rows($check) > 0){
$all_pages=mysql_query("select * from pages where category=".$all_cat['id']);
while($all_page = mysql_fetch_array($all_pages)){
//print your page
echo "<p>".$all_page['page_name']."</p>";
?>
<div class="admin-images-block clearfix">
<?php
$all_images=mysql_query("select * from images where id=".$all_page['image_id']);
while($all_image = mysql_fetch_array($all_images)) {
//print your img
?>
<img src="<?=$all_image['thumb_path']?>" alt="<?=$all_image['title']?>"/>
<?php}?>
</div>
<?php
}
}
}
?>
祝你好运:)