Ако съм те разбрал правилно, таблицата tPCN
може да съдържа множество редове, свързани с всеки PCR номер. И искате да извлечете всички тези редове и да ги върнете във вашия JSON.
Ако искате да постигнете това, но също така да сте сигурни, че другите две таблици връщат само един ред, тогава мисля, че просто трябва да премахнете JOIN към tPCN
в първата си заявка и след това създайте втора заявка за извличане на tPCN
редове конкретно.
$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);
Това ще създаде някои JSON с този вид структура:
{
"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",
}
]
}
След това ще трябва да промените своя JavaScript код, за да можете да се справите с новата структура. Тъй като не знам точно кои полета идват от tPCN
таблица, не мога да ви дам пример за това, но се надяваме, че е ясно, че ще трябва да преминете през масива и да изведете един и същ HTML за всеки запис, който намерите.
N.B. Както можете да видите, пренаписах кода на заявката, за да използвам подготвени изрази и параметризирани заявки, така че можете да видите как да пишете кода си по сигурен начин в бъдеще.
P.S. Имате много код във функцията "success", само за да зададете стойностите на отделните полета. Може да искате да обмислите използването на проста машина за шаблони на JS, за да направите това по-малко многословно и тромаво и да генерирате необходимия HTML със стойностите, автоматично добавени в него на правилното място. Но това е отделен въпрос, само за поддръжката на вашия код