2 回答

TA貢獻2080條經驗 獲得超4個贊
如果要將interest值合并到member對象中,則需要為它們創建一個單獨的數組,然后將其作為字段添加到member對象中。這樣的事情應該工作:
$sql="SELECT * FROM members";
$res=mysqli_query($dbconn,$sql);
while($row=mysqli_fetch_assoc($res)) {
$id=$row['member_id'];
$sqla="SELECT interest FROM memint WHERE memid='$id'";
$resa=mysqli_query($dbconn,$sqla);
$interests = array();
while($rowa=mysqli_fetch_assoc($resa)) {
$interests[] = $rowa['interest'];
}
$data[] = array_merge($row, array('interests' => $interests));
}
echo json_encode($data);

TA貢獻1831條經驗 獲得超4個贊
數據庫應該能夠使用JSON_ARRAYAGG為您完成大部分工作
$sql = "SELECT members.*, JSON_ARRAYAGG(interest) AS interests FROM
members
INNER JOIN memint on members.member_id=memint.memid
GROUP BY members.member_id";
$res=mysqli_query($dbconn,$sql);
$data = array();
while($row=mysqli_fetch_assoc($res)) { $data[] = $row; }
echo json_encode($data);
(免責聲明:我不使用 MySQL,但理論上這應該可行)
----
編輯:
我在這里可能有一個錯誤的假設:interestscolumn的值可能是一個 json string,而不是一個 php 數組。因此,在將其分配給$data您時,您需要對其進行解碼,以便以后的編碼工作。
它看起來更像
while($row=mysqli_fetch_assoc($res)) {
$row[‘interests’] = json_decode($row[‘interests’];
$data[] = $row;
}
- 2 回答
- 0 關注
- 182 瀏覽
添加回答
舉報