Я начал изучать PHP, и я столкнулся с такой проблемой. Функция get_single_all работает нормально, но get_single_by_id производит:
Неустранимая ошибка: Непринятая ошибка: вызов неопределенной функции get_single_by_id() в C:\xampp\htdocs\urb\content-single.php: 3 Трассировка стека: # 0 {main} выбрано в C:\xampp\htdocs\urb\content -single.php в строке 3
Я действительно пытался найти решение проблемы, но ничего не нашел для себя. Вот мой код и скриншот базы данных
function get_singles_all() {
global $db;
$singles = $db->query("SELECT * FROM singles");
return $singles;
}
function get_single_by_id($id) {
global $db;
$singles = $db->query("SELECT * FROM singles WHERE id =$id");
foreach ($singles as $single) {
return $single;
}
}
<?php
$single = get_single_by_id($_GET['id']);
?>
Спасибо!
Как я вижу здесь, вы пытаетесь return
результат из цикла здесь в этой строке:
foreach ($singles as $single) {
return $single;
}
и это действительно плохая идея. Поэтому я предлагаю вам сразу вернуть переменную $singles
singleles, поскольку вы извлекаете данные по id
так, чтобы нулевой результат или только один результат, возвращаемый оператором SQL
, поскольку идентификатор является первичным ключом в вашей базе данных (я надеюсь, что вы это делаете!). здесь фрагмент:
function get_single_by_id($id) {
global $db;
$singles = $db->query("SELECT * FROM singles WHERE id =$id");
return $singles;
}
PS: Следите за размещением открытого тега php, он должен быть чуть выше объявления ваших функций.
надеюсь, я толкнул вас дальше.
$single=
, это означает, что приведенные выше определения функций были просто распечатаны на клиенте, потому что вы не сообщили интерпретатору, что это был код. Попробуйте переместить<?php
в начало файла.