我必须按日期从一个网页过滤到另一个网页:
这是第一页
<?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");
它不起作用,我的剧本出了什么问题?
答案 0 :(得分:2)
更改
$result = mysql_query("SELECT * FROM meeting WHERE meeting_date=$meet");
到
$result = mysql_query("SELECT * FROM meeting WHERE meeting_date='$meet'");
答案 1 :(得分:2)
尽管威廉的回答是正确的,并且会帮助您解决您的问题,但我想提一下我注意到的一些问题:
mysql
扩展名,因为自PHP 5.5以来它已被弃用see here 干杯
答案 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)
您可能同时举行两次会议。要选择正确的,您应该使用id而不是时间。
为了让脚本更快更容易,让MySQL进行日期转换。
使用关联数组可以使脚本更易于调试和阅读!
另一个重要的观点是使用Mysqli的Mysq!它同样简单,但适用于PHP的未来更新。
确保输入符合您的要求。将发送的id转换为intval( $_REQUEST['id'] )
的整数。否则,有人可能会通过网址插入此ID:“0; DROP TABLE meeting;
”将选择ID为0的行并删除整个表格。这被称为SQL注入,正如mrun在他的回答中所说的那样!
我会改写这样的一切:
// $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'] ) );