gpt4 book ai didi

PHP While 循环从多个 'Joined' 表中分离唯一类别

转载 作者:行者123 更新时间:2023-11-29 03:07:14 25 4
gpt4 key购买 nike

我要加入 4 个表,并想创建一个 while 循环来吐出嵌套在不同类别下的结果。

我的表格

类别
编号 |类别名称

页面
编号 |页面名称 |类别

page_content
编号 | page_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 页
图一、图二、图三

第 2 页
图二、图四

第 2 类
第 3 页
图片 1

第 4 页
图一、图二、图三

每张图片可以属于多个页面,每个页面可以属于多个类别。

目前我有 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
}
}

?>

最佳答案

我认为第二种解决方案更好、更直接。你可以这样做:

更新:

  <?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
}

}
}
?>

祝你好运:)

关于PHP While 循环从多个 'Joined' 表中分离唯一类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13439445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com