2013-06-27 5 views
0

У меня есть простой скрипт, который отображает продукты. В моей базе данных я храню как date_posted, так и end_date как поля в таблице продуктов. На моей домашней странице я показываю 20 последних опубликованных продуктов.Codeigniter Days Left mysql Query

Я хочу отображать продукты, у которых осталось 1 или более дней. До сих пор мне удалось это сделать, но с использованием скрипта переднего конца и css, и это не самая лучшая практика, потому что он не отображает 20 продуктов, если некоторые из них закончились.

Ниже приведен сценарий, который у меня есть:

мой взгляд =>

<?php $i=0;?> 
     <?php foreach($product as $p): ?> 
     <?php 
    $startDate = date('m/d/Y'); 
    $endDate = $p['endDate']; 
    $seconds_left = (strtotime($endDate) - strtotime($startDate)); 
    $days_left = floor($seconds_left/3600/24); 


    ?> 
     <?php $i+= 1; ?> 

      <td <?php //if($days_left<=0){echo "class='ended'";} ?>> 
      <a href="<?php echo base_url()."user/product/".$p['productID']; ?>" class="product_name"><?php echo $p['productName']; ?> 
      </a> 
      <ul class="nav"> 
     <li><i class="icon-home"> </i> Location : <?php echo substr($p['location'],0,25); ?></li> 
     <li><i class="icon-tags"> </i> Budget : Tshs <?php echo number_format($p['Price']); ?></li> 
     <li><i class="icon-tasks"> </i> <?php if($p['CategoryID']==4){echo"Number of rooms: ";}else echo "Quantity :"?> <?php echo $p['quantity']; ?></li> 
     <li><i class="icon-eye-open"> </i> Bids : <?php echo $p['Bids']; ?></li> 
     <li><i class="icon-time"> </i> Days Left: <?php echo $days_left; ?></li> 
     </ul> 

      </td> 

моя модель =>

function get_product($productID){ 
           $this->db->select()->from('products')->where('productID',$productID); 


       $query = $this->db->get(); 
       return $query->first_row('array'); 
      } 

ответ

1

Вы должны будете получить дату в вашем где п , Что-то вроде этого следует сделать трюк:

function get_product($productID){ 
      $this->db->select() 
      ->from('products') 
      ->where('productID',$productID) 
      ->where('end_date >=', date('Y-m-d H:i:s', strtotime('- 1 day'))) 
      ->limit(20); 

      $query = $this->db->get(); 
      return $query->first_row('array'); 
} 
+0

thnk вы так много @ bottleboot, т workd совершенно rily оценить сог я застрял на тыс в течение нескольких часов, но я только изменить «end_date <=», чтобы «END_DATE > = ", так как t показывает дни больше 0 в моем случае, поэтому я изменил -1 на 0.thnks снова приятель :-) – bobin56

+0

Ой, мой плохой, еще не полностью проснулся! Я изменил свой ответ. Без проблем, рад, что я мог бы помочь. Вы также можете принять ответ, если хотите! – bottleboot

+1

ok приятель, принят :-) – bobin56