在PHP中,我想将每一行加在一起。
这是我自己的数据库的摘要示例:
c(CorporateID,CompanyName)
o(CorporateID,OutletID)
os(OutletID,StaffName)
数据:
c表:
CorporateID CompanyName
----------- -----------
1 A&B Company
o表:
CorporateID OutletID
----------- --------
1 1
1 2
1 3
操作系统表:
OutletID StaffName
-------- ---------
1 Jeannie
1 Zoey
1 Jasmine
2 James
2 Catherine
3 Ada
PHP的一部分
$conn = new mysqli(server,dbuser,dbpw,db);
$query = "
SELECT o.*,c.*,os.*
FROM Outlet o,Company c,OutletStaff os
WHERE c.CorporateID = o.CorporateID
AND o.OutletID = os.Outlet_ID";
$result = $conn->query($query);
$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "[") {$outp .= ",";}
$outp .= '{"CompanyName":"'. $rs["CompanyName"].' - Outlet'. $rs["OutletID"].'",';
$outp .= '"Worker":"'.$rs["StaffName"].'"}';
}
$outp .="]";
$conn->close();
echo($outp);
输出
[{“ CompanyName”:“ A&B-Outlet1”,“ Worker”:“ Jeannie”},
{“ CompanyName”:“ A&B-Outlet1”,“ Worker”:“ Zoey”},
{“ CompanyName”:“ A&B-Outlet1”,“ Worker”:“ Jasmine”},
{“ CompanyName”:“ A&B-Outlet2”,“ Worker”:“ James”},
{“ CompanyName”:“ A&B-Outlet2”,“ Worker”:“ Catherine”},
{“ CompanyName”:“ A&B-Outlet3”,“ Worker”:“ Ada”}]
如您所见,由于该插座中的工人不同,因此存在重复的companyname
。
这就是我的期望:
[{“ CompanyName”:“ A&B-Outlet1”,“ Worker”:“ Jeannie,Zoey,Jasmine”},
{“ CompanyName”:“ A&B-Outlet2”,“ Worker”:“ James,Catherine”},
{“ CompanyName”:“ A&B-Outlet3”,“ Worker”:“ Ada”}]
它能够做到吗?我个人认为与PHP的第13行有关:
$outp .= '"Worker":"'.$rs["StaffName"].'"}';
也许我需要循环然后放入变量中,然后放入此输出中?
我该如何实现?