mysql循环和格式化结果

时间:2012-06-09 11:05:06

标签: php mysql css

我有这个代码

$query = mysql_query("SELECT * FROM my_table ORDER BY id ASC");
$i=0;
while($row = mysql_fetch_array($query)){
    if ($i%2==0) {
        <div class="main">
            <div class="wrapper-main">
    }
       <article>test string1</article>
       <article>test string2</article>
if ($i++%2==1) {
            </div>
        </div>
    }  
}

当结果计数是对号时,这项工作是完美的,但如果是奇数则“div”未关闭。如何解决?

我的结果必须是:

 <div class="main">
     <div class="wrapper-main">
         <article>test string1</article>
         <article>test string2</article>
     </div>
 </div>
 <div class="main">
     <div class="wrapper-main">
         <article>test string1</article>
     </div>
 </div>

2 个答案:

答案 0 :(得分:1)

您的第二个测试会在之前评估$i 的值,它会增加其值(您可能需要谷歌搜索“后增量”)。因此,当$i为奇数时,您不会关闭div。当$i是偶数时,你实际上关闭了一个不存在的div!

更改您的第二个测试
if ($i++%2==1)

if ($i++%2==0)

我可以建议我的偏好(为了清晰起见):

if ($i%2==0) {
    // close your divs
}
$i++;

答案 1 :(得分:0)

您可以在while循环之后添加以下内容:

if ($i%2==1) {
            </div>
        </div>
    }