尝试从 JSON 格式的 2 个表中返回数据

我正在查询成员表以返回该表中的所有数据,我还有另一个表,其中包含成员兴趣并通过成员 ID 将其链接到成员表。我想返回 JSON,以便成员兴趣显示为主要成员对象数据下的数组。


这就是我要出去的


http://www.dile.ng/member/model/getAllMem.php


我宁愿只获得显示在顶部的兴趣,因为单独的对象显示为每个成员对象下的兴趣数组


require_once("../functions.php");


$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);

  while($rowa=mysqli_fetch_assoc($resa))

{

    $data[]=$rowa;

}

   $data[]=$row;

}

echo json_encode($data);


至尊宝的传说
浏览 160回答 2
2回答

犯罪嫌疑人X

如果要将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);

慕容708150

数据库应该能够使用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; }
打开App,查看更多内容
随时随地看视频慕课网APP