foreach не работает при попытке получить студентов

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;

1

Решение

вместо $v это должно быть $v['id_branch']

3

Другие решения

индекс отсутствующего массива ‘id_branch’

Пытаться:

$stuBranch = $conn->query("SELECT student_pid FROM tbl_students
WHERE graduation_branch = ".$v['id_branch']." ");
3

Сократите свои накладные расходы, выполнив следующие действия:

 $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 Возвращает значения из одного столбца во входном массиве

2

$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;
2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector