Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何对UL中的表值进行分组?_Php_Html_Mysql_Html Lists - Fatal编程技术网

Php 如何对UL中的表值进行分组?

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

因此,我不确定是我的foreach循环还是我的sql查询需要修复,但我尝试了按“categoryname”分组,但没有效果。我希望类别名称($qs['name'])只显示一次,并且属于该类别的所有li都显示在其中。任何帮助都会很好。 我所拥有的是:

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>