微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-将查询结果转换为HTML列表

我真的只是将脚趾浸入PHPMysqL.我已经按照自己想要的方式进行了这项工作,但是我知道这很丑陋,我想知道真正知道自己在做什么的人将如何完成这项工作.

    function displayCategoryMenu($db){  
       echo '<ul class="class">';
       foreach($db->query('SELECT * FROM categoryDb, thingDb WHERE category = category AND categoryId= "aaa0001"  ORDER BY category, thingName') as $row){
          if($categoryName!== $row['categoryName']){
            $categoryName= $row['CategoryName'];
            echo '<li class="category">'.$categoryName.'</li>';
          }
          echo'<li><a class="fader" href="?&amp;page='.$row['thingId']">'.$row['thingName'].'</a></li>';
      }
      echo '</ul>';

       echo '<ul class="class">';
       foreach($db->query('SELECT * FROM categoryDb, thingDb WHERE category = category AND categoryId= "aaa0002"  ORDER BY category, thingName') as $row){
          if($categoryName!== $row['categoryName']){
            $categoryName= $row['CategoryName'];
            echo '<li class="category">'.$categoryName.'</li>';
          }
          echo'<li><a class="fader" href="?&amp;page='.$row['thingId']">'.$row['thingName'].'</a></li>';
      }
      echo '</ul>';
      $db=null;
    }

这基本上会导致一个无序的列表菜单,其中第一个孩子充当标题

    <ul>
       <li>category1Name</li>
       <li><a>thing</a></li>
       <li><a>thing</a></li>
       <li><a>thing</a></li>
    </ul>
    <ul>
       <li>category2Name</li>
       <li><a>thing</a></li>
       <li><a>thing</a></li>
       <li><a>thing</a></li>
    </ul>

要么:

类别1

>东西
>东西
>东西

分类2

>东西
>东西
>东西

等等…

每个ul代码中的唯一区别是“ categoryId”(aaa0001,aaa0002等),我只能想象我将以最艰难的方式来尝试此问题,并使用最丑陋的代码.我很想看看应该怎么做.

解决方法:

您应该将类​​别ID列表存储在数组中的某个位置,在使用变量代替类别ID的同时对其进行迭代.就像是 :

function displayCategoryMenu($db){  
    $categoryIds = array('aaa0001', 'aaa0002');

    foreach ($categoryIds as $categoryId) {
        echo '<ul class="class">';
        foreach($db->query('SELECT * FROM categoryDb, thingDb WHERE category = category AND categoryId= "' . $categoryId . '"  ORDER BY category, thingName') as $row) {
            if($categoryName !== $row['categoryName']){
                $categoryName = $row['CategoryName'];
                echo '<li class="category">' . $categoryName . '</li>';
            }
            echo '<li><a class="fader" href="?&amp;page=' . $row['thingId'] . '">' . $row['thingName'] . '</a></li>';
        }
        echo '</ul>';
    }
}

在这里,数组$categoryIds包含必须显示的ID列表,您可以根据需要动态生成或将其作为函数参数传递,它很容易扩展. foreach循环遍历此数组的每个元素,并对循环中$categoryId变量表示的每个ID所做的HTML显示SQL查询作业完全相同.

关于$db的旁注= null; line:如果您不传递$db函数参数as a reference,则按照您的方式修改函数中的值不会对原始变量产生任何影响,此行在这里是不必要的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐