mysqli — объединяет несколько наборов результатов запроса в одном массиве с переполнением стека

Я хочу объединить несколько результатов запроса в один массив с 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);

0

Решение

Вам не нужно использовать 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);
1

Другие решения

Вы делаете что-то простое, как …

echo json_encode(["school" => $school_count,"parent"=>$parent_count]);

Но так как это массивы результатов, вы можете извлечь фактические значения счетчиков …

echo json_encode(["school" => $school_count[0][0],"parent"=>$parent_count[0][0]]);
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector