gpt4 book ai didi

PHP/MySQL 类别 div 换行问题

转载 作者:行者123 更新时间:2023-11-29 13:45:09 26 4
gpt4 key购买 nike

我相当确定我忽略了一些显而易见的事情,但事实就是如此。

我正在 MySQL 中使用两个表,一个用于 categories另一个为 works 。我已成功将这些表连接在一起,并使用 mysql_fetch_array 引用这两个表。 。 (我知道这已被弃用。)

我还能够成功显示一次类别名称,然后显示该类别中的所有作品。

但是,我遇到了一个问题,即用 div 包裹类别中的所有条目。我想在条目周围包裹一个 div 的原因是我使用可折叠元素来保持信息井井有条。类别名称作为可折叠的触发器,当用户单击类别名称时,作品将展开/折叠。

(我也在 FancyBox 中打开每个图像,但这与我的问题无关。)

这是我的代码:

$sql = "SELECT *
FROM gallery
LEFT JOIN gallery_categories ON gallery.category=gallery_categories.category_id
ORDER BY category ASC";

$result = mysql_query($sql) or print ("Can't join tables.<br />" . $sql . "<br />" . mysql_error());

$category = null;

while($row = mysql_fetch_array($result)){
$id = $row['id'];
$title = stripslashes($row['title']);
$image = stripslashes($row['image']);
$timestamp = stripslashes($row['timestamp']);

if ($category != $row['category']) {
$category = $row['category'];

?>

<div class="page_collapsible" id="<?php echo $row['category_id']; ?>"><h3><div class="title"><?php echo $row['category_name']; ?></div></h3></div>

<div class="gallery-grid">

<div class="item">
<div class="content"><a class="fancybox" href="images/works/<?php echo $image ?>" title="<?php echo $title ?>, <?php echo $timestamp ?>"><img src="images/thumbs/<?php echo $image ?>" class="thumb" /><div class="thumb-border"></div></a></div>
</div>

</div>

<?php

}

}

page_collapsible类包含可折叠触发器。 gallery-grid class 是要折叠的内容的包装器。 item类包含有关 works 中每个条目的信息表。

我遇到的问题是代码仅迭代 works 中的第一行与类别匹配的表。我尝试删除类别显示的 IF 语句,而是尝试 GROUP BY ,但遇到了同样的问题。如果我移动项目类别和 </div>对于 IF 语句之外的 gallery-grid 类, works 中的每个条目table 已成功显示,但 gallery-grid 类包装了每个后续类别和相应的条目。如果我移动项目类别但保留 </div>对于当前所在的 gallery-grid 类,可折叠内容为空白,并且条目位于可折叠内容之外,尽管在其相应类别下正确显示。

最终,如何将给定类别中的所有条目包装一次,同时显示给定类别中的所有条目?

最佳答案

据我了解你的问题,你不是在寻找这样的东西吗?仅当类别更改时才需要编写包装器的开始/结束(保留 order by category )。这些项目在每个循环过程中都会无条件写入。

注意if($category != null){...}是因为没有关闭第一个包装器和最后一个</div>循环外部用于关闭最后一个包装器

while($row = mysql_fetch_array($result)){
$id = $row['id'];
$title = stripslashes($row['title']);
$image = stripslashes($row['image']);
$timestamp = stripslashes($row['timestamp']);

if ($category != $row['category']) {
if($category != null){
?>
</div>
<?php
}
$category = $row['category'];
?>
<div class="page_collapsible" id="<?php echo $row['category_id']; ?>"><h3><div class="title"><?php echo $row['category_name']; ?></div></h3></div>
<div class="gallery-grid">
<?php
}
?>
<div class="item">
<div class="content"><a class="fancybox" href="images/works/<?php echo $image ?>" title="<?php echo $title ?>, <?php echo $timestamp ?>"><img src="images/thumbs/<?php echo $image ?>" class="thumb" /><div class="thumb-border"></div></a></div>
</div>
<?php
}
?>
</div>

关于PHP/MySQL 类别 div 换行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17529496/

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