我的表单中有 2 个输入框,我将在 selDate 下输入开始日期,在 selDate2 下输入结束日期。我的表将日期字段存储在文本字段中。
<form id="formDate" name="formDate" method="post" action="">
<p><strong>Date Filter:</strong></br>
</p>
<p>
<label for="selDate"></label>
<input type="text" name="selDate" id="selDate"
value="<?php echo $_POST['selDate']; ?>" />
</p>
<p>
<label for="selDate2"></label>
<input type="text" name="selDate2" id="selDate2"
value="<?php echo $_POST['selDate2']; ?>"/>
</p>
<p>
<input type="submit" name="go" id="go" value="Submit" />
</form>
我使用以下语句列出相应的行。
$varDate_Recordset1 = $row_RecordsetLastDate['date'];
if (isset($_POST['selDate'])) {
$varDate_Recordset1 = $_POST['selDate'];
}
$varDate2_Recordset1 = $row_RecordsetLastDate['date'];
if (isset($_POST['selDate2'])) {
$varDate2_Recordset1 = $_POST['selDate2'];
}
mysql_select_db($database_port, $port);
$query_Recordset1 = sprintf("SELECT * FROM checkout, `transaction`, school_store
WHERE `transaction`.activity_id=school_store.Tag
AND `transaction`.transaction_id=checkout.transaction_id AND (checkout.`date`
BETWEEN %s AND %s) AND `transaction`.status='1'
ORDER BY checkout.`date` DESC, `transaction`.id DESC",
GetSQLValueString($varDate_Recordset1, "text"),
GetSQLValueString($varDate2_Recordset1, "text"));
$Recordset1 = mysql_query($query_Recordset1, $port) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
我在查询中的两个变量之间使用。输入日期时,我回显空白行。我也尝试过 checkout.date
BETWEEN CAST(%s AS DATE) AND CAST(%s AS DATE) 之间无济于事。我什至尝试过 checkout.date
>=%s 和 checkout.date
<=%s 但没有成功。为什么不显示数据?
最佳答案
仅供其他人搜索此信息时使用。
字段checkout
。date
不是DATE或DATETIME类型,因此当前查询没有显示任何结果。
更改字段类型解决了该问题。 (但这可能会导致数据丢失,所以要小心)。
结束查询应该是(结账。日期
BETWEEN %s AND %s)
关于php - 使用2个日期之间的数据来查询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40386722/