echo "<pre>"; print_r($jobbrnchesids); exit;
<pre>Array
(
[0] => Array
(
[id_branch] => 6
)
[1] => Array
(
[id_branch] => 1
)
)
Из приведенного выше массива я получаю ветви с идентификаторами вакансий. Теперь я пытаюсь получить студентов, которые работают с этими ветками.
Я пытался таким образом, но что-то идет не так, не в состоянии отладить, может кто-нибудь мне помочь.
$studentBranch = '';
foreach ($jobbrnchesids as $k => $v){
$stuBranch = $conn->query("SELECT student_pid FROM tbl_students
WHERE graduation_branch = ".$v." ");
$studentsWithBranches[] = $stuBranch->fetch_assoc();
}
echo "<pre>"; print_r($studentsWithBranches); exit;
вместо $v
это должно быть $v['id_branch']
индекс отсутствующего массива ‘id_branch’
Пытаться:
$stuBranch = $conn->query("SELECT student_pid FROM tbl_students
WHERE graduation_branch = ".$v['id_branch']." ");
Сократите свои накладные расходы, выполнив следующие действия:
$branchIds = array_column($jobbrnchesids,"id_branch");
$result = $conn->query("SELECT student_pid FROM tbl_students
WHERE graduation_branch IN (".implode(",",$branchIds.")");
$studentsWithBranches = $result?$result->fetch_all(MYSQLI_ASSOC):[];
array_column
Возвращает значения из одного столбца во входном массиве
$studentBranch = '';
foreach ($jobbrnchesids as $k => $v) {
$stuBranch = $conn->query("SELECT student_pid FROM tbl_students WHERE graduation_branch = '" . ['id_branch'] . "'");
$studentsWithBranches[] = $stuBranch->fetch_assoc();
}
echo "<pre>";
print_r($studentsWithBranches);
exit;