我将 PHP 与 SQLSRV 一起用于 MSSQL 2008 r2。
我想要做的是在两个输入框中输入两个日期,并仅显示所需日期之间的记录,以及订单总数和总值示例:
我想显示在 24/05/13 和 29/05/13 之间下了多少订单,所以我会得到一个输出,即下了 2 个订单,总值 = 50。
也许这比我想象的要容易。我是 PHP 和 SQLSRV 的新手。实现这一点的最佳方法是什么?
**Orders Table**
OrderId CustomerID OrderDate OrderValue
1 1 2013-05-29 23.00
2 2 2013-05-26 23.00
3 2 2013-05-26 27.00
4 3 2013-05-24 23.00
** * ** * ***编辑* ** * ** * ** * ** * ****
好的,多亏了肖恩,我有了一个起点。我已将他的查询放入以下演示脚本中,但是它没有执行,我哪里出错了?
表单.php
<form action="action.php" method="post" >
<input name="StartDate" type="text" id="StartDate" value="start"/>
<input name="StartDate" type="text" id="EndDate" value="end"/>
<input type="submit" name="submit" >
</form>
Action.php 此页面返回SQL计算
<?php
include("connect.php");
?>
<?php
DECLARE @StartDate datetime
DECLARE @EndDate datetime
DECLARE @CustomerID int
SET @StartDate = '05/24/2013' /* FORM.StartDate */
SET @EndDate = '05/29/2013' /* FORM.EndDate */
SET @CustomerID = 2 /* FORM.CustomerID */
/* Get the TotalOrderValue for All CustomerIDs */
$sql ="SELECT CustomerID, sum(OrderValue) AS TotalOrderValue
FROM Orders
WHERE OrderDate >= @StartDate
AND OrderDate < dateAdd(d,1,@EndDate)
GROUP BY CustomerID
ORDER BY CustomerID";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
$CustomerID = sqlsrv_get_field( $stmt, 0);
echo "$TotalOrderValue: ";
?>