Pokud jsem dobře pochopil, tabulka tPCN
může obsahovat více řádků spojených s každým číslem PCR. A chcete načíst všechny tyto řádky a vrátit je ve svém JSON.
Pokud toho chcete dosáhnout, ale zároveň se ujistit, že další dvě tabulky vracejí pouze jeden řádek, pak si myslím, že byste měli jednoduše odstranit JOIN to tPCN
v prvním dotazu a poté vytvořte druhý dotaz pro načtení tPCN
řádky konkrétně.
$output = [];
$stmt = $dbConnected->prepare("SELECT * FROM change_management.tPCR INNER JOIN change_management.tcomplement ON change_management.tPCR.PCRNo = change_management.tcomplement.PCRNo WHERE tPCR.PCRNo = ?");
$stmt->bind_param('s', $_POST['pcr_number']);
$stmt->execute();
$result = $stmt->get_result();
//select a single row from the result and assign it as the output variable
if ($row = $result->fetch_assoc()) {
$output = $row;
}
$stmt2 = $dbConnected->prepare("SELECT * FROM change_management.tPCN WHERE PCRNo = ?");
$stmt2->bind_param('s', $_POST['pcr_number']);
$stmt2->execute();
$result2 = $stmt2->get_result();
$output["tPCN"] = array(); //create a new property to put the tPCN rows in
//loop through all the tPCN rows and append them to the output
while ($row2 = $result2->fetch_assoc()) {
$output["tPCN"][] = $row2;
}
echo json_encode($output);
To vytvoří nějaký JSON s tímto typem struktury:
{
"PCRNo": "ABC",
"CreationDate": "2019-08-07",
"Name": "A N Other",
//...and all your other properties, until the new one:
"tPCN": [
{
"SomeProperty": "SomeValue",
"SomeOtherProperty": "SomeOtherValue",
},
{
"SomeProperty": "SomeSecondValue",
"SomeOtherProperty": "SomeOtherSecondValue",
}
]
}
Poté budete muset upravit svůj kód JavaScript, abyste byli schopni pracovat s novou strukturou. Protože přesně nevím, která pole pocházejí z tPCN
tabulka, nemohu vám k tomu dát příklad, ale doufejme, že je jasné, že budete muset procházet polem a pro každou položku, kterou najdete, vygenerovat stejný kód HTML.
N.B. Jak můžete vidět, přepsal jsem kód dotazu tak, aby používal připravené příkazy a parametrizované dotazy, takže můžete vidět, jak v budoucnu psát svůj kód bezpečným způsobem.
P.S. Máte tam spoustu kódu ve funkci "úspěch" jen pro nastavení hodnot jednotlivých polí. Možná budete chtít zvážit použití jednoduchého šablonovacího modulu JS, aby to bylo méně podrobné a těžkopádné, a vygenerujte požadovaný HTML s hodnotami automaticky přidanými do něj na správném místě. Ale to je samostatný problém, jen kvůli udržovatelnosti vašeho kódu