Я рекомендую передавать соединение db в качестве параметра функции вместо использования объявления global
.
fetch(PDO::FETCH_ASSOC)
возвращает одномерный ассоциативный массив или false
.
http://php.net/manual/en/pdostatement.fetch.php
Использование заглавных букв в ваших ключевых словах sql может улучшить читаемость.
Я удалил предложение LIMIT, но если ваш столбец id
является PRIMARY KEY, ограничение не будетзначения.
function story($db, $id) {
$st = $db->prepare("SELECT * FROM users WHERE id = :aid");
$st->execute([":aid" => $id]);
if (!$row = $st->fetch(PDO::FETCH_ASSOC)) {
echo "no row found";
}
foreach ($row as $key => $val) {
echo "<div class='title'>" . $key . "</div>\n" .
echo "<div class='story'>" . $val . "</div>\n";
}
}
У меня есть подозрение, что ваша таблица базы данных может быть не оптимальной.Обычно вам нужна стабильная структура столбцов, позволяющая увеличить количество строк.Если ваша таблица расширяется как по вертикали, так и по горизонтали, мне интересно, каковы ваши требования.