[英]Insert results of multiple queries in one array
這是我的PHP文件現在的外觀:
<?php
ini_set('display_errors','1');
error_reporting(E_ALL);
include_once 'dbConnect.php';
if (connect()){
global $conn;
$param = array();
$queryOBParam = "SELECT p,q,b
FROM params
WHERE faculty = 'OB'";
$checkRes = $conn->prepare($queryOBParam);
$checkRes->execute();
$checkRes->bind_result($pOB,$qOB,$bOB);
while ($checkRes->fetch()){
$temp = [
'p'=>$pOB,
'q'=>$qOB,
'b'=>$bOB
];
array_push($param,$temp);
}
echo json_encode($param);
}
?>
我希望將下面的查詢結果插入數組$ param中,因為我需要一次性將所有查詢結果放入應用程序中。
$queryTotVoters = "SELECT COUNT(*) as totalVoters
FROM regVoter";
我該如何進行?
在評論中,您說您想要的最終數組應如下所示: [{"p":293,"q":433,"b":10, "totalVoters":27}]
。
這是您可以完成此操作的一種方法,但是請記住,無論數組將包含多少條目,totalVoters值對於所有對象都是相同的,因為SELECT COUNT(*) as totalVoters FROM regVoter
的查詢SELECT COUNT(*) as totalVoters FROM regVoter
沒有WHERE子句就像WHERE param = X
。
<?php
ini_set('display_errors','1');
error_reporting(E_ALL);
include_once 'dbConnect.php';
if (connect()){
global $conn;
$param = array();
$totalVoters = 0;
// get totalVoters from regVoter
$queryTotalVoters = "SELECT COUNT(*) as totalVoters FROM regVoter";
$checkRes = $conn->prepare($queryTotalVoters);
$checkRes->execute();
$checkRes->bind_result($resTotalVoters);
while ($checkRes->fetch()){
$totalVoters = $resTotalVoters;
}
$queryOBParam = "SELECT p,q,b
FROM params
WHERE faculty = 'OB'";
$checkRes = $conn->prepare($queryOBParam);
$checkRes->execute();
$checkRes->bind_result($pOB,$qOB,$bOB);
while ($checkRes->fetch()){
$param[] = [
'p'=>$pOB,
'q'=>$qOB,
'b'=>$bOB,
'totalVoters'=>$totalVoters
];
}
echo json_encode($param);
}
?>
小提示:我從未使用過bind_result()和fetch(),實際上通常是面向對象的Mysqli,所以我只是從現有查詢中復制了它。 因此我的代碼可能有錯誤
編輯:添加了$ totalVoters的初始化
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.