我应该如何在MySQL中过滤日期

时间:2015-12-02 08:05:22

标签: php mysql

我必须按日期从一个网页过滤到另一个网页:

这是第一页

<?php while($row = mysql_fetch_array($result)){ ?>      
    <tr>
        <td><a href="meeting_view.php?meet=<?php echo $row[2];?>" target = '_blank' ><?php echo date("d-m-Y", strtotime($row[2]));?></a>
</td><?php}?>

这是meeting_view.php

$meet = $_GET['meet'];
$result = mysql_query("SELECT * FROM meeting WHERE meeting_date=$meet");

它不起作用,我的剧本出了什么问题?

4 个答案:

答案 0 :(得分:2)

更改

$result = mysql_query("SELECT * FROM meeting WHERE meeting_date=$meet");

$result = mysql_query("SELECT * FROM meeting WHERE meeting_date='$meet'");

答案 1 :(得分:2)

尽管威廉的回答是正确的,并且会帮助您解决您的问题,但我想提一下我注意到的一些问题:

  1. 您应该避免使用mysql扩展名,因为自PHP 5.5以来它已被弃用see here
  2. 您的代码目前容易受到SQL Injection的攻击。请查看here以了解如何保护数据库。
  3. 干杯

答案 2 :(得分:1)

如下所示进行一些更改:

<td> <a href="meeting_view.php?meet='<?php echo $row[2];?>'"   // add quotes
        target = '_blank' >
        <?php echo date("d-m-Y", strtotime($row[2]));?>
     </a>
</td>

同样改变:

$result = mysql_query("SELECT * FROM meeting WHERE meeting_date='".$meet."')"; 

答案 3 :(得分:0)

  1. 您可能同时举行两次会议。要选择正确的,您应该使用id而不是时间。

  2. 为了让脚本更快更容易,让MySQL进行日期转换。

  3. 使用关联数组可以使脚本更易于调试和阅读!

  4. 另一个重要的观点是使用Mysqli的Mysq!它同样简单,但适用于PHP的未来更新。

  5. 确保输入符合您的要求。将发送的id转换为intval( $_REQUEST['id'] )的整数。否则,有人可能会通过网址插入此ID:“0; DROP TABLE meeting;”将选择ID为0的行并删除整个表格。这被称为SQL注入,正如mrun在他的回答中所说的那样!

  6. 我会改写这样的一切:

    // $sql = 'SELECT *, DATE_FORMAT("%d-%m-%Y", meeting_date) AS date FROM meeting';
    <?php while($row = mysqli_fetch_assoc($result)){ ?>      
        <tr>
            <td><a href="meeting_view.php?id=<?= $row['id'] ?>" 
                   target='_blank' ><?= $row['date'] ?></a>
    </td><?php}?>
    

    $result = mysqli_query('SELECT * FROM meeting WHERE id=' 
            . intval( $_REQUEST['id'] ) );