получить значения foreach loop из пользовательской функции php

У меня есть вопрос, касающийся функций PHP. Гуглил все вокруг, но не смог найти удовлетворительного ответа на мою проблему.

Я пытаюсь получить значения из цикла foreach, который находится внутри самодельной функции:

function get_gemeente_by_id($gemeente_id)
{
global $db;

// Omzetten van integer (id) naar string (name)
$query = $db->prepare("SELECT * FROM gemeenten WHERE id = {$gemeente_id}");
$query->execute();

foreach($query->fetchAll(PDO::FETCH_OBJ) as $gemeente)
{
$district       = $gemeente->district;
$congregation   = $gemeente->gemeente;
}
}

Выполнение запроса прямо на верхушке страницы работает нормально. Но я хочу использовать значения, созданные в моей функции, чтобы отобразить это так:

Я называю свою функцию:

get_gemeente_by_id($_SESSION['gemeente_id']);

и хотите вывести значения из запроса внутри функции.

<?= $district; ?> and <?= $congregation; ?>

Я получаю сообщение об ошибке: «Примечание: неопределенная переменная: район в HTTP: // локальный / и т.д.«

Hpe кто-то может мне помочь. Я не пишу много кода на своих страницах и пытаюсь с помощью функции сделать это.

Заранее спасибо.

2

Решение

Вы должны вернуть массив своей функцией попробуйте это:

function get_gemeente_by_id($gemeente_id)
{
global $db;
$arr = array()

// Omzetten van integer (id) naar string (name)
$query = $db->prepare("SELECT * FROM gemeenten WHERE id = {$gemeente_id}");
$query->execute();

foreach($query->fetchAll(PDO::FETCH_OBJ) as $gemeente)
{
$arr['district'][]  = $gemeente->district;
$arr['congregation'][]   = $gemeente->gemeente;
}
return $arr
}

и когда вы вызываете функцию:

$arr = get_gemeente_by_id($_SESSION['gemeente_id']);
foreach ($arr as $dist_con=>$b){
foreach($b as $a=>$c){
echo $dist_con.$a."=".$c
}
echo "<br>";
}
0

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

Вот вам решение:

// get_gemeente_by_id function
function get_gemeente_by_id($gemeente_id)
{
global $db;
$query = $db->prepare("SELECT * FROM gemeenten WHERE id =?;");
$query->execute(array($gemeente_id));
return $query->fetchAll(PDO::FETCH_ASSOC);
}

// Call to function and get associative array with expected data
$arr = get_gemeente_by_id($_SESSION['gemeente_id']);
foreach ($arr as $dist_con=>$b){
foreach($b as $a=>$c){
echo $dist_con.$a."=".$c
}
echo "<br>";
}
0

По вопросам рекламы [email protected]