Я хочу объединить несколько результатов запроса в один массив с PHP. Но мне трудно это сделать. любая помощь?
$row = $conn->query("SELECT COUNT(school_name) as school_total from schools_tbl");
$row->setFetchMode(PDO::FETCH_ASSOC);
$school_count = $row->fetchAll();
$row = $conn->query("SELECT COUNT(fname) as parents_total from parents_tbl");
$row->setFetchMode(PDO::FETCH_ASSOC);
$parent_count = $row->fetchAll();
echo json_encode($school_count,$parent_count);
Вам не нужно использовать fetchall () для извлечения одного столбца. Вместо этого вы можете использовать fetchColumn ().
<?php
$row = $conn->query("SELECT COUNT(school_name) as school_total from schools_tbl");
$row->setFetchMode(PDO::FETCH_ASSOC);
$school_count = $row->fetchColumn();
$sql = $conn->query("SELECT COUNT(fname) as parents_total from parents_tbl");
$sql->setFetchMode(PDO::FETCH_ASSOC);
$parent_count = $sql->fetchColumn();
$results = array(
'school_total' => $school_count,
'parents_total' => $parent_count
);
echo json_encode($results);
Вы делаете что-то простое, как …
echo json_encode(["school" => $school_count,"parent"=>$parent_count]);
Но так как это массивы результатов, вы можете извлечь фактические значения счетчиков …
echo json_encode(["school" => $school_count[0][0],"parent"=>$parent_count[0][0]]);