<?php
while($rows = mysqli_fetch_array($result)){
$i = 0;
if($i % 4 === 0) { ?>
<ul> <?php } ?>
<li><img src="<?php echo $rows['images'] ?>" /></li>
<p><?php echo $rows['brand'] ?></p>
<?php if($i % 4 === 0) { ?>
</ul>
<?php } $i++; ?>
<?php }
?>
for css
ul{
display block
}
我认为css中的问题
答案 0 :(得分:0)
$i = 0
应该在循环之外,因为每次迭代都会将它设置为0。
你的CSS错了。
ul {
display: block;
}
如果您希望将<p><?php echo $rows['brand'] ?></p>
标记在<li></li>
<ul></ul>
放入{{1}}标记中
答案 1 :(得分:0)
这里有很多错误。
首先,表格是为这种结构而建的,除此之外。
你应该有一个你想要的HTML的例子,这样你就有了构建你的php的目标。
但是因为我并不确切地知道你想要什么,而且我通常不做PHP我会试一试。
上次我做了PHP,我使用echo来避免标签混乱。所以我在这里做了同样的事情(导致我认为更具可读性和更重要的可调试性)。
我看到的第一件事是你的$i
在while循环中,这意味着它在每次运行时都会重置为0。我把它移出了循环并在最后一次重置它,如果每次测试四次。
$i++
也不能是最后一次,这会使您的$i=0
,$i=4
,$i=8
等打开并关闭<ul>
和在<li>
和</ul>
之间将有3个解包<ul>
。
第二件事是<p>
(无序列表)中的<ul>
,但在<li>
(列表项)之外,这是一个否定的。所以我把它移到了<li>
。
<?php
$i = 0;
while($rows = mysqli_fetch_array($result))
{
if($i % 4 === 0) {
echo "<ul>";
}
$i++;
echo "<li>";
echo "<img src=\"$rows['images']\"/>";
echo "<p>$rows['brand']</p>";
echo "</li>";
if($i % 4 === 0) {
$i = 0;
echo "</ul>";
}
}?>
对于CSS,请试用display:inline-block
li{
display:inline-block;
}
这应该是结果 http://jsfiddle.net/go16zspr/2/
我将边框添加到<li>
,以便您可以看到它们在占用空间方面的真实外观。
希望这有帮助。至少它的一些指示。