<ul>基于数据库的常见id提取

时间:2015-09-16 10:44:54

标签: php while-loop

我试图在我的数组中进行迭代,并根据常用内容对他们的相对ul进行分组。

预期结果如下

<ul>
<li>b</li>
<li>c</li>
<li>a</li>
<li>g</li>
<li>e</li>
</ul>

<ul>
<li>d</li>
<li>f</li>
<li>i</li>
</ul>

<ul>
<li>d</li>
<li>f</li>
<li>i</li>
</ul>

我尝试过以下代码

<?php
$IMPLODED_trid = 1,2,3,4,5,6 ;
$result=mysqli_query('SELECT * FROM tablegroup where id IN ($IMPLODED_trid)');
while($row=mysqli_fetch_array($result))
{
$name=$row['name'];
?>
<ul>
<li><?php $name ;?></li>
</ul>
<?php
}
?>

但上面的代码给出了以下结果

<ul>
<li>c</li>
</ul>
<ul>
<li>a</li>
</ul>
<ul>
<li>d</li>
</ul>
<ul>
<li>i</li>
</ul>

2 个答案:

答案 0 :(得分:0)

你的代码错了。将ul标记放在while循环的正文之外。试试这个:

<ul>
    <?php
    $IMPLODED_trid = 1,2,3,4,5,6 ;
    $result=mysqli_query('SELECT * FROM tablegroup where id IN ($IMPLODED_trid)');
    while($row=mysqli_fetch_array($result))
    {
        $name=$row['name'];
        ?>
        <li><?php $name ;?></li>
        <?php
    }
    ?>
</ul>

答案 1 :(得分:0)

你想要使用两个循环。

一个外部用于生成<ul>元素,另一个用于生成<li>元素 <ul>

此类代码可能如下所示

<?php
    $result = []; //grouped by ul ID

    for ($i = 1; $i < count($ids); $i++) {
        echo '<ul>';
        while ($row = $result[$i])
            echo '<li>' . $result[$i]['name'] . '</li>';
        echo '</ul>';
    }
?>

它是有效的PHP,但它不起作用。 这是你正在寻找的结构,因为你需要一个外部循环遍历你需要的<ul>元素的数量,并且在那个循环中你需要循环遍历列表项本身。 / p>

如果您只有<ul>个课程,则不需要外部循环。