2015-02-11 100 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'; 
相关问题