MySQL 循环和格式化结果


mysql loop and formatting results

我有这个代码

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

您的第二个测试在$i的值增加之前评估其值(您可能需要在Google上搜索"帖子增量")。因此,当$i奇数时,您不会关闭您的div。当$i是偶数时,您实际上确实关闭了一个不存在的div!

将第二个测试从

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

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

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

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

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

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