Php 如何对UL中的表值进行分组?
因此,我不确定是我的foreach循环还是我的sql查询需要修复,但我尝试了按“categoryname”分组,但没有效果。我希望类别名称($qs['name'])只显示一次,并且属于该类别的所有li都显示在其中。任何帮助都会很好。 我所拥有的是:Php 如何对UL中的表值进行分组?,php,html,mysql,html-lists,Php,Html,Mysql,Html Lists,因此,我不确定是我的foreach循环还是我的sql查询需要修复,但我尝试了按“categoryname”分组,但没有效果。我希望类别名称($qs['name'])只显示一次,并且属于该类别的所有li都显示在其中。任何帮助都会很好。 我所拥有的是: NEW HAMPSHIRE <--This is $state_name--> Personal auto <--This is $qs['name']--> • Your young drivers—help them
NEW HAMPSHIRE <--This is $state_name-->
Personal auto <--This is $qs['name']-->
• Your young drivers—help them play it safe
Personal auto <--This is $qs['name']-->
• The dangers of drunken driving
Personal auto <--This is $qs['name']-->
• How to keep your vehicle safe from car thieves
ETC....
新罕布什尔州
个人汽车
•你的年轻车手帮助他们安全驾驶
个人汽车
•醉酒驾驶的危险
个人汽车
•如何保护您的车辆安全,防止车辆被盗
等
我想要的是:
NEW HAMPSHIRE <--This is $state_name-->
Personal auto <--This is $qs['name']-->
• Your young drivers—help them play it safe
• The dangers of drunken driving
• How to keep your vehicle safe from car thieves
ETC....
新罕布什尔州
个人汽车
•你的年轻车手帮助他们安全驾驶
•醉酒驾驶的危险
•如何保护您的车辆安全,防止车辆被盗
等
代码:
$sql=mysql\u查询(
“选择qs、状态、标题、链接、类别、categoryid、categoryname
来自“irc\u消费者\u内容”`
加入“irc消费者内容”类别`
在irc\u consumer\u content.category=irc\u consumer\u content\u category.categoryid上
按类别名称ASC排序;“”;
$row=mysql\u fetch\u assoc($sql);
$states\u array=array(“AL”=>“四个状态主题”,
“CT”=>“康涅狄格主题”,
“NH”=>“新罕布什尔州主题”,
“NJ”=>“新泽西主题”,
“纽约”=>“纽约主题”);
做{
$qs_数组[$row['state']][]=数组(“qs”=>$row['qs'],
“title”=>$row['title'],
“link”=>$row['link'],
“名称”=>$row['categoryname']);
}而($row=mysql_fetch_assoc($sql));
可用主题
您可以检查当前类别是否与前一类别相同。因此,您可以相应地打开和关闭
ul
e、 g
可用主题
非常感谢!这个想法奏效了。我添加了代码以显示它与原始设置的区别(请参见更新)。
$sql = mysql_query(
"SELECT qs, state, title, link, category, categoryid, categoryname
FROM `irc_consumer_content`
JOIN `irc_consumer_content_category`
ON irc_consumer_content.category=irc_consumer_content_category.categoryid
ORDER BY categoryname ASC;");
$row = mysql_fetch_assoc($sql);
$states_array = array( "AL"=>"Four-state topics",
"CT"=>"Connecticut topics",
"NH"=>"New Hampshire topics",
"NJ"=>"New Jersey topics",
"NY"=>"New York topics");
do {
$qs_array[$row['state']][] = array( "qs"=>$row['qs'],
"title"=>$row['title'],
"link"=>$row['link'],
"name"=>$row['categoryname']);
} while ($row = mysql_fetch_assoc($sql));
<div>
<h1>Topics available</h1>
<? //==== GET STATE ====================================
foreach ($states_array as $state => $state_name) { ?>
<h2><? echo $state_name; ?></h2>
<? //==== GET STATE TOPICS ======================
foreach ($qs_array[$state] as $i => $qs) { ?>
<h3><? echo $qs['name']; ?></h3>
<ul class="first-level">
<li class="list" id="<? echo $qs['qs']; ?>">
<div class="selected-list-item">
<div id="title-text">
<? echo iconv('Windows-1252', 'UTF-8', $qs['title']); ?>
</div>
<div class="ideas-div">
<div class="ideas-top">
</div>
<div class="idea-images">
</div>
<div class="ideas-bottom">
</div>
</div>
</div>
</li>
</ul>
<? } ?>
<? } ?>
</div>
<div>
<h1>Topics available</h1>
<? //==== GET STATE ====================================
foreach ($states_array as $state => $state_name) { ?>
<h2><? echo $state_name; ?></h2>
<? $category = "";?>
<? //==== GET STATE TOPICS ======================
foreach ($qs_array[$state] as $i => $qs) {
if ($category != $qs['name']){
$category = $qs['name'];
?>
<h3><? echo $category; //echo $qs['name']; ?></h3>
<ul class="first-level">
<li class="list" id="<? echo $qs['qs']; ?>">
<? }else { ?>
</li>
</ul>
<ul class="first-level">
<li class="list" id="<? echo $qs['qs']; ?>">
<? }?>
<!--ALL ELSE IS THE SAME-->
<div>
<h1>Topics available</h1>
<? //==== GET STATE ====================================
foreach ($states_array as $state => $state_name) { ?>
<h2><? echo $state_name; ?></h2>
<?php $old_name = ''; ?>
<ul>
<? //==== GET STATE TOPICS ======================
foreach ($qs_array[$state] as $i => $qs) { ?>
<?php if ($old_name != $qs['name']) : ?>
<?php $old_name = $qs['name']; ?>
</ul><--Close previous item ul-->
</ul><--Open ul for new item-->
<?php endif; ?>
<h3><? echo $qs['name']; ?></h3>
<ul class="first-level">
<li class="list" id="<? echo $qs['qs']; ?>">
<div class="selected-list-item">
<div id="title-text">
<? echo iconv('Windows-1252', 'UTF-8', $qs['title']); ?>
</div>
<div class="ideas-div">
<div class="ideas-top">
</div>
<div class="idea-images">
</div>
<div class="ideas-bottom">
</div>
</div>
</div>
</li>
<? } ?>
</ul>
<? } ?>
</div>