这是一个非常基本的问题,但我对PHP很新。
我需要在这样的场景中显示结果,即同一行中只有三个记录然后添加<br />
,然后在下一行,同样的事情应该发生。我无法使其逻辑和麻烦:(
现在,我只是用简单的方法,即
while($data = mysql_fetch_array($res_set)) {
?>
<div><?php echo $data['name']?><img src="images/<?php echo $data['image']?>" /></div>
<?php
}
这是我的代码
$cnt = 0;
while ($prd = mysql_fetch_array($res)) {
?>
<div class="imageRow">
<?php
$cat_id = $prd['cat_id'];
$sql = "select * from tbl_category where id = $cat_id";
$cat_res = mysql_query($sql);
$cat_data = mysql_fetch_array($cat_res);
$cat_name = $cat_data['name'];
?>
<div class="set">
<div class="single first">
<a href="<?php echo $ru ?>admin/product_images/<?php echo $cat_name ?>/thumb/<?php echo $prd['thumb_img'] ?>" rel="lightbox[plants]"><img src="<?php echo $ru ?>admin/product_images/<?php echo $cat_name ?>/large/<?php echo $prd['thumb_img'] ?>" style="height: 100px; width: 100px;" /></a><br />
<a href="<?php echo $ru ?>contact_form.php?id=<?php echo $prd['id'] ?>">Choose</a>
</div>
</div>
</div>
<?php
$cnt = $cnt++;
if($cnt%3 == 0) {echo "<br />";}
}
//echo $cnt;
?>
任何帮助将不胜感激。 谢谢
答案 0 :(得分:3)
<div class="imageRow">
<?php
$i = 0;
while($data = mysql_fetch_array($res_set)) { ?>
<div>
<?php echo $data['name']; ?><img src="images/<?php echo $data['image']; ?>" />
</div>
<?php
$i++;
if($i % 3 == 0) {
echo '</div><div class="imageRow"><br />';
}
}
?>
</div>
<强>解释强>
将变量$ i设置为一个数字,然后用于跟踪您编写的项目数。
然后,在while循环中,增加$ i($ i ++),这与$ i = $ i + 1相同;通过这样做,你总能知道你在哪个项目 - 无论$ i的价值是多少。有些人选择将其设置为1,然后在最后增加 - 其他喜欢将其设置为0,并将其设置为接近开头 - 要么完全正常 - 无论您需要它做什么/以您喜欢的方式更好。< / p>
最后,检查$ i是否可被3整除(类似于余数 - 它被称为“mod”并由百分号表示)。如果是,则回显换行符。
答案 1 :(得分:0)
试试这个
<?php
echo "<div>";
while($data = mysql_fetch_attay($res_set)) {
?>
<div style="width:30%; float:left"><?php echo $data['name]?><img src="images/<?php echo $data['image']?>" /></div>
<?php
}
echo "</div>";
?>
输出
<div>
<div>1</div> <div>2</div> <div>3</div>
<div>1</div> <div>2</div> <div>3</div>
<div>1</div> <div>2</div> <div>3</div>
</div>
答案 2 :(得分:0)
那里有一些超级丑陋的代码。这将满足您的需求,并且更加清洁。
<?php
$i=1;
while($data = mysql_fetch_attay($res_set)) {
$frame = '<div><img src="%s" /></div>';
printf($frame, $data['image']);
if($i % 3 == 0) { echo '<br />'; }
$i++;
}
此外,<img>
元素已经是块元素,您实际上不需要在它们周围包裹另一个<div>
。