我有一个php文件,它将从另一个php文件获取输入并在html表中显示数据,但在sql语句中我没有在其中过滤日期字段,可能是日期格式不正确。请帮帮我这个
我的代码在下面
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("marketnews", $con);
$date1 = explode('/', $_POST['ADate']);
$time = mktime(0,0,0,$date1[0],$date1[1],$date1[2]);
$mysqldate = date( 'Y-m-d H:i:s', $time );
$date2 = explode('/', $_POST['BDate']);
$time = mktime(0,0,0,$date2[0],$date2[1],$date2[2]);
$mysqldate1 = date( 'Y-m-d H:i:s', $time );
$sec= "$_POST[id]";
echo "<br>";
echo "$mysqldate1";
echo "<br>";
echo "$sec";*/
$result = mysql_query("SELECT * FROM mktnews where security = '$sec' and eventdate between '$mysqldate' and '$mysqldate1'");
echo '<a href="main.html"><b>BACK</b></a>';
echo "<br>";
echo "<table border='2' BORDERCOLOR=GREEN align='center' >
<tr>
<th>Firm</th>
<th>Name</th>
<th>NIC</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['eventdate'] . "</td>";
echo "<td>" . $row['news'] . "</td>";
echo "<td>" . $row['security'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
这个MySql表的日期格式是这样的
2013-04-11
请帮我解决这个问题
答案 0 :(得分:1)
根据表的结构,您的日期格式看起来是正确的,但是您的mysql语句中缺少引号。
应如下所示:
$result = mysql_query("SELECT * FROM mktnews where security = '".$sec."' and eventdate between '".$mysqldate."' and '".$mysqldate1."'");
我相信你知道,你也应该逃避你的疑问。
答案 1 :(得分:0)
您必须更改日期格式以在mysql表格中作为日期格式进行比较
使用
$mysqldate = date( 'Y-m-d', $time ); instead of $mysqldate = date( 'Y-m-d H:i:s', $time );
和
$mysqldate1 = date( 'Y-m-d', $time ); instead of $mysqldate1 = date( 'Y-m-d H:i:s', $time );
会根据需要返回结果。
答案 2 :(得分:0)
更改
$mysqldate = date( 'Y-m-d H:i:s', $time );
到
$mysqldate = date( 'Y-m-d', $time );
和$mtsqldate1
你的php时间格式和mysql时间格式不同