2015-02-11 90 views
0

我設置了一個從MYSQL新聞表中檢索新聞的新聞頁面。如何識別它是奇數還是偶數並添加類?

我試圖確定新聞欄是奇數還是偶數,所以如果新聞欄是奇數,甚至會向div元素添加一個類。

我的代碼如下:

<?php 
$cat = $_GET['cat']; 
$date = $_GET['date']; 

if ($date !="") { 
    $date = explode('-', $date); 
    $year = $date[1]; 
    $month = $date[0]; 
    $month = date("m", strtotime($month)); 
    $sql = "SELECT * FROM news WHERE year(newsDate) = '$year' AND month(newsDate) = '$month' AND newsState = 1 ORDER BY newsDate DESC"; 
} else { 
    $sql = "SELECT * FROM news WHERE newsState = 1 ORDER BY newsDate DESC"; 
} 

$result = $conn->query($sql); 
$rows = $result->num_rows; 

$pager = new PS_Pagination($conn, $sql, 5, 10, null); 

$rs = $pager->paginate(); 

$num = $rs->num_rows; 

if($num >= 1){ 
while($row = $rs->fetch_assoc()){ 
?> 
<div class="news <?php echo $num; ?>"> 
     <div class="four columns"> 
      <p><img src="/news-images/thumbs/thumb_<?php echo $row['newsImage1']; ?>" alt=""/></p> 
     </div> 
     <div class="eight columns"> 
      <h3><?php echo $row['newsTitle']; ?></h3> 
      <p><?php echo stripslashes(strip_tags($row['newsDescription'])); ?></p> 
     </div> 
    </div> 
<?php } } else { 
echo "No records found!"; 

} 

if ($rows >= 5) { 
echo "<div class='page-nav blog-nav'>"; 
    echo $pager->renderFullNav(); 
echo "</div>"; 
} 
?> 
+0

以及究竟是你的問題? – 2015-02-11 10:57:24

+0

http://stackoverflow.com/questions/7959247/php-test-if-number-is-odd-or-even – 2015-02-11 10:59:30

+2

添加一個計數器。在每一列增加計數器。如果計數器%2 == 0那麼甚至奇數(根據僞代碼來講) – ITroubs 2015-02-11 11:00:15

回答

2

走哪保持奇偶位置上的任何標誌...

$f = 0; //ADDED THIS LINE 
if($num >= 1){ 
while($row = $rs->fetch_assoc()){ 
if($f%2==0) //ADDED THIS LINE 
    $class_name = "even"; //ADDED THIS LINE 
else  //ADDED THIS LINE 
    $class_name = "odd"; //ADDED THIS LINE 
?> 
<div class="news <?php echo $class_name; ?>"> 
     <div class="four columns"> 
      <p><img src="/news-images/thumbs/thumb_<?php echo $row['newsImage1']; ?>" alt=""/></p> 
     </div> 
     <div class="eight columns"> 
      <h3><?php echo $row['newsTitle']; ?></h3> 
      <p><?php echo stripslashes(strip_tags($row['newsDescription'])); ?></p> 
     </div> 
    </div> 
<?php $f++; } } else { 
echo "No records found!"; 

} 
+0

非常感謝,這回答了我的問題。到底是什麼我以後。 – Craig 2015-02-11 11:50:43

1

創建變量,遞增,在每個循環,並檢查,如果$i % 2是0(偶數)或1(奇數)。

$i = 1; 

while($row = $rs->fetch_assoc()){ 
?> 
<div class="news <?php echo $num; echo $i % 2 == 0 ? ' even' : ' odd' ?>"> 
     <div class="four columns"> 
      <p><img src="/news-images/thumbs/thumb_<?php echo $row['newsImage1']; ?>" alt=""/></p> 
     </div> 
     <div class="eight columns"> 
      <h3><?php echo $row['newsTitle']; ?></h3> 
      <p><?php echo stripslashes(strip_tags($row['newsDescription'])); ?></p> 
     </div> 
    </div> 
<?php 
    $i++; 
} 
1
if($num >= 1){ 
$tr = 1; 
while($row = $rs->fetch_assoc()){ 
if($tr%2 == 0) 
{ 
    //then even class 
} 
else 
{ 
    //odd class 
} 
    ?> 
<div class="news <?php echo $num; ?>"> 
    <div class="four columns"> 
     <p><img src="/news-images/thumbs/thumb_<?php echo $row['newsImage1']; ?>" alt=""/></p> 
    </div> 
    <div class="eight columns"> 
     <h3><?php echo $row['newsTitle']; ?></h3> 
     <p><?php echo stripslashes(strip_tags($row['newsDescription'])); ?></p> 
    </div> 
</div> 
<?php $tr++; } } else { 
echo "No records found!"; 

} 

使用計數器變量,並檢查它是否是奇數還是偶數?

+0

非常感謝,這回答了我的問題。到底是什麼我以後。 – Craig 2015-02-11 11:50:14

+0

隨時歡迎.... – 2015-02-11 11:54:22

0

取$ classname ='';

獲取循環中的新聞ID和分/ 2並比較您是否獲得奇數/偶數值。在奇數值的情況下,添加$ classname ='oddCLASS',如果需要,甚至可以添加$ classname ='evenCLASS'和updare class = $ classname。

這樣它會自動更新動態類。

0

所以要做到這一點最快的方法就是使用一個布爾值:

$odd = false; 
while (....) 
{ 
    echo ($odd = !$odd) ? 'odd' : 'even'; 
} 

沒有必要繼續爲一個計數器,無需模和它保持代碼乾淨漂亮。我喜歡的方式,除非你需要保留一個櫃檯。即使如此:$counter & 1 == 1$counter % 2 == 1快,並且完全一樣。

簡單的解釋:

echo ($odd = !$odd) ? 'odd' : 'even'; 
// will become 
$odd = ! $odd; // it flips the boolean 
if ($odd) 
    echo 'odd'; 
else 
    echo 'even'; 
相關問題