-1

我有这个代码

$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>
4

2 回答 2

1

您的第二个测试在增加它的值$i 之前评估它的值(您可能想在谷歌上搜索“post increment”)。$i因此,当奇怪的时候,你不要关闭你的 div 。你实际上在偶数时关闭了一个不存在的 div $i

将您的第二个测试从

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

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

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

if ($i%2==0) {
    // close your divs
}
$i++;
于 2012-06-09T11:25:57.290 回答
0

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

if ($i%2==1) {
            </div>
        </div>
    }
于 2012-06-09T11:10:12.380 回答