2013-04-12 63 views
0

我有一個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

什麼是您的日期字段的數據類型..? – alwaysLearn

+0

和一個建議..請避免使用mysql_ *函數他們折舊.. – alwaysLearn

回答

1

根據表格的結構,您的日期格式看起來正確,但是您在mysql語句中缺少引號。

應該是這樣的:

$result = mysql_query("SELECT * FROM mktnews where security = '".$sec."' and eventdate between '".$mysqldate."' and '".$mysqldate1."'"); 

,因爲我敢肯定你知道,你應該逃脫你的查詢了。

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); 

只要你想將返回結果。

0

變化

$mysqldate = date('Y-m-d H:i:s', $time); 

$mysqldate = date('Y-m-d', $time); 

和同爲$mtsqldate1

你的PHP時間格式和MySQL時間格式是不同的

相關問題