В 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": "Джинни""},
{" 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 "}]
Может ли это сделать? Я лично чувствую, что есть что-то, что связано со строкой 13 PHP:
$outp .= '"Worker":"'.$rs["StaffName"].'"}';
Может быть, мне нужно выполнить цикл, затем поместить его в переменную, а затем поместить в этот вывод?
Как мне этого добиться?