0
<div class="row">

<?php
$r=mysql_query("SELECT * FROM advertisements WHERE $filter exposure!='0' AND `status`='2' AND (clicks_left_micro>0 OR clicks_left_mini>0 OR clicks_left_standard>0 OR clicks_left_extended>0) ORDER BY exposure DESC");
while($ar=mysql_fetch_array($r)):

    echo "<div class='span4'> text here text here</div>";

endwhile;
?>

</div>

正如您在$r查询中看到的那样,我按exposure. 曝光字段可以包含来自 的数字1-3。我要做的是为每个曝光数创建一个新行。例子:

曝光 = 1 的广告将位于第一行
下方,曝光 = 2 的
广告最后,曝光 = 3 的广告

现在的方式是,广告/span4 div 只是相互呼应。我想在 while 循环中对它们进行排序<div class='row'></div>

4

2 回答 2

0

由于它们是按曝光排序的,因此您可以简单地执行以下操作:

$curExpo = null;

while( ... ) {
    if( $curExpo !== $row['exposure']) {
        create new row
        $curExpo = $row['exposure'];
    }
}
于 2013-09-24T08:11:01.923 回答
0

像这样的东西怎么样:

<div class="row">
    <?php
        $r=mysql_query("SELECT * FROM advertisements WHERE $filter exposure!='0' AND `status`='2' AND (clicks_left_micro>0 OR clicks_left_mini>0 OR clicks_left_standard>0 OR clicks_left_extended>0) ORDER BY exposure DESC");
        $row1 = '';
        $row2 = '';
        $row3 = '';
        while($ar=mysql_fetch_array($r)):
             if($ar['exposure'] == 1)
                  $row1 .= '<span>Your code here for row 1</span>';
             else if($ar['exposure'] == 2)
                  $row2 .= '<span>Your code here for row 2</span>';
             else if($ar['exposure'] == 3)
                  $row3 .= '<span>Your code here for row 3</span>';
        endwhile;
    ?>
    <table>
        <tr>
            <td><?php echo $row1; ?></td>
            <td><?php echo $row2; ?></td>
            <td><?php echo $row3; ?></td>
        </tr>
    </table>
</div>

当然,您必须根据需要对其进行调整,但这就是想法。

编辑:正如其他人所注意到的,您不应再使用 mysql_* 函数。

于 2013-09-24T08:00:08.363 回答