2012-09-21 49 views
-2

我试图过滤所有即将举行的会议 的名单到目前为止我使用这个查询PHP和MySQL:按日期过滤

$sql = "SELECT * from demo_meeting WHERE created_by_id IN(SELECT id FROM demo_user WHERE user_name = '$get_user_name') AND venue_id IS NULL AND meeting_datetime >= curdate() ORDER BY meeting_datetime "; 
        mysql_real_escape_string($sql); 
        $result = mysql_query($sql) or die (mysql_error()); 
        while($row = mysql_fetch_array($result)) { 
         // Print out the contents of each row into a table 
         //date_default_timezone_set('Australia/Melbourne'); 
         date_default_timezone_set('Asia/Calcutta'); // Change it as per user requirement 
         $date = date('Y-m-d H:i:s ', time()); 
         if ($date > $row['meeting_datetime']){ 
         ?> 
         <tr><td> 
         <div class= "main" style ="margin-top: 5px; padding: 15px 14px;background:#fff"> 
           <div class = "bold" > Name :<?php echo $row['name']; ?><br> </div> 
           <div class = "bold" > Date :<?php echo $row['meeting_datetime']; ?></div> 
          </div> 
          <div class = "clear"></div> 
         </td></tr> 
       <?php 
         }} 

为什么这上面的语句不打印即将举行的会议?

+2

停止?你能告诉我们'print_r($ result)'的结果吗? –

+0

资源ID#8这是我得到的print_r($ result) – user1667633

回答

0

也许是因为你做了meeting_datetime >= curdate()和之后的相反if ($date > $row['meeting_datetime'])

所以,只要使用`mysql_ *`函数代替>通过<或< =

+0

或者通过mysql来完成这一切,不需要在PHP中执行此操作 –

+0

是的,他已经在MySQL中这样做了,他正在使用双重检查,不知道为什么。 –

+0

其实在这里我的逻辑是,如果当前时间是任何一天的15:00:00,那么我想在15:00:00之后显示所有会议,到目前为止,我正在进行双重验证 – user1667633