В настоящее время я создаю функцию, которая принимает идентификатор пользователя и на основе этого идентификатора должна возвращать все значения из базы данных сообщений, содержащей идентификатор пользователей. У меня есть отдельный файл php, который я сохранил в функции, поскольку я хочу использовать это на многих страницах. В файле functions.php у меня есть:Использование цикла в функции PHP и возвращаемого массива для каждой строки
class getposts
{
public function getpostcontent($userid){
include('db-conx.php');//Connects to Db
$getval = "SELECT `content`,`date` FROM posts WHERE userid = ?";
$stmt = $conn->stmt_init();
if ($stmt->prepare($getval))
{
$userid = $_SESSION['userid'];
$stmt->bind_param("s", $userid);
$stmt->execute();
$stmt->bind_result($content, $date);
while ($stmt->fetch()) {
$displayname = "Tom";
$array = [
"content" => "$content",
"date" => "$date",
"displayname" => "$displayname",
];
return $array;
}
}
}
и вызвать его, используя в Posts.php:
$posts = new getposts();
echo $posts ->getpostcontent($userid);
Проблема заключается в том, что пользователь имеет несколько строк в базе данных сообщений и код работает только один раз. Как бы я начал цикл, чтобы показывать значения из каждой строки при вызове? Я могу переусердствовать и искать все вокруг, но, похоже, не может заставить его работать.
С PHP 5.5 или более поздней версии вы можете [взглянуть на генераторы] (http://php.net/manual/en/language.generators.overview.php). –