2013-09-24 215 views
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的數字。我想要做的是爲每個曝光號碼創建一個新行。例如:PHP - 在while循環

廣告具有曝光= 1,將在第一行中
下面說,將具有曝光的廣告= 2
並且最後,將存在有曝光的廣告= 3

現在的方式是,廣告/ span4 div只是相互呼應。我想他們在<div class='row'></div>

+0

退房[標題下分組結果](http://stackoverflow.com/questions/1158727/grouping-results-under-一題)。它使用相同的原則。 –

+2

'mysql_ *'是_deprecated_,請使用PDO(Consistend,OO API,稍微慢一些)或mysqli_ *'(凌亂的API,但最快的擴展,非常強大)。離開'mysql_ *'(不建議使用,不安全),並且永遠不要回頭 –

+0

就像@EliasVanOotegem已經說過:[**請不要在新代碼中使用'mysql_ *'函數**](http:// bit。 LY/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

回答

0

什麼樣的while循環中大約是這樣的:

<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_ *函數。

0

因爲它們被曝光排序,你可以簡單地做:

$curExpo = null; 

while(...) { 
    if($curExpo !== $row['exposure']) { 
     create new row 
     $curExpo = $row['exposure']; 
    } 
}