带SUM和WHERE的Mysql查询不起作用

带SUM和WHERE的Mysql查询不起作用,mysql,sql,Mysql,Sql,请更改此查询,以便在使用WHERE子句时返回表中的所有记录,以便我可以在需要时搜索特定记录。目前它没有返回任何内容: 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['so

请更改此查询,以便在使用WHERE子句时返回表中的所有记录,以便我可以在需要时搜索特定记录。目前它没有返回任何内容:

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);
试试这个

  select *, sum(price+shipping+paypalfee+storefee) as totalcost
  from tblsales 
  group by orderno 
  where " . $where . " 
  order by $sort $order 
  limit $offset,$rows

我改变了拥有的地方,它起作用了。。。太小心了!您正在通过扩展误用MySQL的组。结果集中唯一具有可预测值的列是
orderno
和总和。其余的价值是不可预测的。读这个@布巴亚科扎。您还可以通过将
where
放在它所属的
groupby
之前来修复它。@BubbaYakoza您使用的是一个早就不推荐使用的API。请参阅mysqli_u2;/PDO,最重要的是,请参阅准备好的声明@GordonLinoff我怎么能舍入总成本?
select *,sum(totalcost) 
FROM (select *, price+shipping+paypalfee+storefee as totalcost from tblsales) x
group by orderno 
where " . $where . " 
order by $sort $order 
limit $offset,$rows