#php #mysql #function
#php #mysql #функция
Вопрос:
Я искал везде, но не смог найти правильный путь вперед.
В моем controller.php У меня есть:
<?php $get_listing = function ($id) {
$results = $db->query("SELECT * FROM listings ORDER BY date DESC");
$listings = $results->fetchAll(PDO::FETCH_ASSOC);
} ?>
Выше приведена моя функция для извлечения данных из базы данных. Я хочу получить определенную строку на основе переменной $id.
Теперь, в моем ad-details.php У меня есть:
<?php foreach(get_listing($id) as $info) {
echo $info["price"]; }
Я получаю сообщение об ошибке, в котором говорится, что функция get_listing не определена, что странно, потому что controller.php включен в ad-details.php
Есть идеи, ребята? Любая помощь была бы высоко оценена.
Ответ №1:
2 ошибки:
1 — Вы забыли
global $db;
и оператор return в вашей функции.
2 — Если вы используете анонимные функции, вам нужно вызывать их со знаком $. Вероятно
<?php
foreach($get_listing($id) as $info) {
echo $info["price"];
}
?>
работает.
Ответ №2:
Вы присвоили своей функции значение переменной с именем $get_listing
, но вызываете ее с помощью get_listing
.
Либо объявите свою функцию следующим образом.
function get_listing($id)
Или вызовите его следующим образом.
$get_listing($id)
Ответ №3:
<?php
function get_listing($id)
{
$results = $db->query("SELECT * FROM listings ORDER BY date DESC");
$listings = $results->fetchAll(PDO::FETCH_ASSOC);
}
?>