我在mysql中有一个查询,它将返回按某些字段分组的表。我如何回应这些结果? 这是我的代码。
$stmt = $con->prepare("
SELECT classSubject
, COUNT(*) cnt
from Class
where grade=?
and department=?
and classGroup IN(?,3)
GROUP
BY classSubject;
");
$stmt->bind_param("isi", $grade, $department, $classGroup);
//executing the query
$stmt->execute();
此后我应该怎么做,以便我可以回显所有结果?
答案 0 :(得分:1)
我建议您查看一个好的网站,该网站可以作为使用哪种语法的示例,例如this one。
$sql = "SELECT classSubject, COUNT(*) cnt FROM Class ";
$sql .= "WHERE grade = ? AND department = ? AND (classGroup = ? OR classGroup = 3) ";
$sql .= "GROUP BY classSubject";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("isi", $grade, $department, $classGroup);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "(classSubject, count) = (" . $row['classSubject'] . ", " . $row['cnt'] . ")";
}
}
请注意,我在select中的COUNT(*)
术语中添加了别名,以便我们可以在PHP中轻松按名称引用它。您也可以只使用它们的数字索引来引用列,但是按名称进行命名是一种更容易,更安全的方法。
答案 1 :(得分:0)
在阅读了Tim Biegeleisen的答案并做了一些冲浪之后,我想到了这个解决方案。执行查询后:
$response = array();
$response['success']=true;
$stmt->bind_result($classSubject,$cnt);
while ($stmt->fetch())
{
$response[$classSubject]=$cnt;
}
echo json_encode($response);
希望这对某人有帮助。