我有以下查询:
if ($stmt = $mysqli->prepare("SELECT Date, Due, Paid from patient_sessions WHERE Name=? AND Invoiced=? AND Type=? AND SUBSTR(Date,1,7)=? ORDER BY Date")) {
$stmt->bind_param("ssss",$client,$invoiced,$type,$month);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($date,$due,$paid);
while ($stmt->fetch()) {
RUN SOMETHING HERE
}
不是使用while ($stmt->fetch())
循环返回的所有行,而是想将Due列中的值返回的行分组,然后遍历每个组的每一行,但我不是确定如何做到这一点。
额外信息
我想以下列格式返回结果:
返回每个'Due'值的一行,并返回每个值的行数(这是需要分组的内容)。
然后......
每行一行,按日期排序,显示所有3个值(日期,到期,付费)。
我被困了,因为我需要分组以及各行。我可以用一个查询返回两个吗?
答案 0 :(得分:0)
$sql = "SELECT Date, Due, Paid from patient_sessions
WHERE Name=? AND Invoiced=? AND Type=? AND SUBSTR(Date,1,7)=?
ORDER BY Due, Date";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("ssss",$client,$invoiced,$type,$month);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($date,$due,$paid);
$data = array();
while ($stmt->fetch())
{
if (!isset($data[$due]))
{
$data[$due] = array();
}
$data[$due][] = array($date,$paid);
}
print_r($data);
答案 1 :(得分:0)