我正在尝试在php中创建一个循环来显示循环工作正常的类别列表,并且sql查询会提取所有正确的信息但是我正在尝试为每个回显一个
标记循环增量的4倍,这将在我的网站设计上创建一个新行。当我使用echo '<p>';
回显p标签时,问题是如何直接创建一个结束标记。
这是我的代码:
echo '<!-- Create first 4 --><P>';
while($row1 = mysql_fetch_array($result1))
{
echo '<div class="cat">';
echo '<img src="'.$row1['IMAGE'].'" alt="'.$row1['NAME'].'">';
echo '<h2>'.$row1['NAME'].'</h2>';
echo '</div>';
$i++;
//force a new line of catagories
if (( $i == 4 )||( $i == 8 )||( $i == 12 ))
{
echo '<!-- if more than 4 Close first 4 --></p>';
echo '<!-- Create second 4 --><p>';
}
}
echo '<!-- close first 4 --></p>';
当这在firefox中运行时,我检查源代码我得到了这个:
<div class="content">
<!-- Create first 4 -->
<p></p><div class="cat"> … </div><div class="cat"> … </div><div class="cat"> … </div><div class="cat"> … </div>
<!-- if more than 4 Close first 4 -->
<p></p>
<!-- Create second 4 -->
<p></p><div class="cat"> … </div><div class="cat"> … </div><div class="cat"> … </div><div class="cat"> … </div>
<!-- if more than 4 Close first 4 -->
<p></p>
<!-- Create second 4 -->
<p> … </p></div>
我需要它来准确打印echo语句中的内容。
答案 0 :(得分:3)
您确实打印了echo语句中的内容。但是,如果happens to be invalid HTML那么浏览器可能决定“修复它”以便有一些可用的东西。
解决问题的正确方法是将<div>
标记替换为<p>
- 这将是有效的HTML,因此浏览器不会干扰,您可以使用CSS来适当地设置样式并获得与段落相同的视觉效果。
答案 1 :(得分:0)
查看“模数运算符”示例如下:http://php.net/manual/en/language.operators.arithmetic.php您只需检查循环是否为4,然后执行代码。我还建议你在语义上大声读出你的代码,你会轻易找到你的错误。
答案 2 :(得分:0)
我从您的代码中删除了不需要的行,并获得了以下内容:
<?php
echo "<!-- Create first 4 --><p>\n";
$i = 0;
while ($i < 14)
{
echo ' <div class="cat"></div>' . "\n";
$i++;
//force a new line of catagories
if (( $i == 4 )||( $i == 8 )||( $i == 12 ))
{
echo '<!-- if more than 4 Close first 4 --></p>' . "\n";
echo '<!-- Create second 4 --><p>' . "\n";
}
}
echo '<!-- close first 4 --></p>' . "\n";
?>
结果是:
<!-- Create first 4 --><p>
<div class="cat"></div>
<div class="cat"></div>
<div class="cat"></div>
<div class="cat"></div>
<!-- if more than 4 Close first 4 --></p>
<!-- Create second 4 --><p>
<div class="cat"></div>
<div class="cat"></div>
<div class="cat"></div>
<div class="cat"></div>
<!-- if more than 4 Close first 4 --></p>
<!-- Create second 4 --><p>
<div class="cat"></div>
<div class="cat"></div>
<div class="cat"></div>
<div class="cat"></div>
<!-- if more than 4 Close first 4 --></p>
<!-- Create second 4 --><p>
<div class="cat"></div>
<div class="cat"></div>
<!-- close first 4 --></p>
好像没问题。您的代码中的其他位置存在问题。
顺便说一句。我建议使用if ($i % 4 == 0)
代替if (( $i == 4 )||( $i == 8 )||( $i == 12 ))