1
include 'conn.php';
$page = isset($_POST['page']) ? intval($_POST['page']) : 1;
$rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10;
$sort = isset($_POST['sort']) ? strval($_POST['sort']) : 'saleid';
$order = isset($_POST['order']) ? strval($_POST['order']) : 'desc';
$orderno = isset($_POST['orderno']) ? mysql_real_escape_string($_POST['orderno']) : '';
$offset = ($page-1)*$rows;
$result = array();
$where = "orderno like '$orderno%'";
$rs = mysql_query("select count(*) from tblsales where " . $where);
$row = mysql_fetch_row($rs);
$result["total"] = $row[0];
$rs = mysql_query("select *, sum(price+shipping+paypalfee+storefee) as totalcost from tblsales group by orderno where " . $where . " order by $sort $order limit $offset,$rows");
$items = array();
while($row = mysql_fetch_object($rs)){
array_push($items, $row);
}
$result["rows"] = $items;
echo json_encode($result);
能否請你改變這個查詢,以便它在返回表中的所有記錄,同時使用WHERE子句,這樣如果需要的話我可以搜索特定的記錄。目前,它不返回任何東西:MySQL查詢用SUM和WHERE不起作用
select *, sum(price+shipping+paypalfee+storefee) as totalcost
from tblsales
group by orderno
where " . $where . "
order by $sort $order
limit $offset,$rows
我改變WHERE到HAVING和它的作品...哇 – 2014-11-22 13:31:03
小心!你在濫用MySQL的GROUP BY擴展。結果集中唯一具有可預測值的列是'orderno'和總和。其餘的值是不可預測的。讀這個。 http://dev.mysql.com/doc/refman/5.6/en/group-by-handling.html – 2014-11-22 13:52:24
@BubbaYakoza。 。 。你也可以通過把'where'放在'group by'之前來解決它,它屬於它。 – 2014-11-22 13:58:08