如何使用PHP&生成列表MySQL的

时间:2010-06-29 19:40:07

标签: php mysql

我想知道如何使用列表连续显示五个图像。例如,如何使用PHP& amp;生成以下XHTML代码? MySQL的?

这是XHTML代码。

<ul>
    <li><a href="#" title=""><img src="" /></a></li>
    <li><a href="#" title=""><img src="" /></a></li>
    <li><a href="#" title=""><img src="" /></a></li>
    <li><a href="#" title=""><img src="" /></a></li>
    <li><a href="#" title=""><img src="" /></a></li>
</ul>

<ul>
    <li><a href="#" title=""><img src="" /></a></li>
    <li><a href="#" title=""><img src="" /></a></li>
    <li><a href="#" title=""><img src="" /></a></li>
    <li><a href="#" title=""><img src="" /></a></li>
    <li><a href="#" title=""><img src="" /></a></li>
</ul>

这是我的PHP&amp;到目前为止MySQL代码。

$url = array();
$title = array();

$dbc = mysqli_query($mysqli,"SELECT *
                             FROM images
                             GROUP BY images.id");

if (!$dbc) {
    print mysqli_error($mysqli);
} else {
    while($row = mysqli_fetch_array($dbc)){ 
        $url[] = $row["url"];
        $title[] = $row["title"];
    }
}

3 个答案:

答案 0 :(得分:2)

只需回显你的while循环: 编辑:注意到你的例子每5张图片都有一个新的ul,代码已经过调整以处理它。

if (!$dbc) {
    print mysqli_error($mysqli);
} else {
    $rowCount = 0;
    while($row = mysqli_fetch_array($dbc)){ 
        if($rowCount % 5 == 0){
         echo "<ul>";
        }
       echo "<li><a href='" .$row["url"]. "' title='".$row['title']."'>";
        echo "<img src='".$row['src']."'></a></li>";
       if($rowCount % 5 == 4) {
         echo "</ul>";
       }
       $rowCount++;
    }

}

答案 1 :(得分:1)

你已经完美了! 现在你只需要添加一个HTML部分。 虽然,单独的数组并不好,但最好使用单个数组

$DATA = array();
while($row = mysqli_fetch_array($dbc)){ 
  $DATA[] = $row;
}

然后你打算输出HTML

<ul>
<? foreach ($DATA as $row): ?>
    <li><a href="<?=$row['url']?>" title="<?=$row['title']?>"><img src="" /></a></li>
<? endforeach ?>
</ul>

但如果您需要将列表拆分为较小的部分,则需要另外的代码

有很多方法可以做到这一点。最简单的方法是在阵列中添加一些标记 而不是在模板上使用它:

<? foreach ($DATA as $row): ?>
  <? if($row['ul']): ?><ul><? endif ?>
      <li><a href="<?=$row['url']?>" title="<?=$row['title']?>"><img src="" /></a></li>
  <? if($row['/ul']): ?></ul><? endif ?>
<? endforeach ?>

答案 2 :(得分:0)

最简单的方法是在没有大量疯狂语句确定何时拆分列表的情况下执行此操作,即利用array_chunk

<?php
$url = array();
$title = array();

$dbc = mysqli_query($mysqli,"SELECT *
                             FROM images
                             GROUP BY images.id");

if (!$dbc) {
    print mysqli_error($mysqli);
} else {
    while($row = mysqli_fetch_array($dbc)){ 
        $rows = $row;
    }
}


$row_groups = array_chunk($rows, 5);

foreach($row_groups as $row_group ) {
   echo "<ul>";
   foreach( $row_group as $row ) {
?>
       <li><a href="<?=$row['url'] ?>" title="<?=$row['title'] ?>"><img src="<?=$row['url'] ?>"/></a></li>';
<?php
   }
   echo "</ul>";
}
?>