Я создал массив в моем файле functions.php для доступа на другой странице. Затем я вернул массив и назвал его на другой странице. Это то, что у меня есть:
В моем файле functions.php у меня есть
public function getpostcontent($userid){
include('db-conx.php');
$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 = getdisplayname($userid);
$array = [
"content" => $content,
"date" => $date,
];
}
return $array;
}
}
И я получаю доступ к массиву на моей другой странице, используя это.
$posts = new getposts();
$returned=$posts->getpostcontent($userid);
foreach($returned as $val)
{
echo $val['content'];
}
Я пробовал все решения, которые я нашел в Google и других местах, не повезло. Он работает, когда я использую print_r ($ val); для извлечения всех элементов в массиве, но выбрасывает "Недопустимое смещение строки", когда я пытаюсь получить к ним доступ по отдельности. Помогите?
Одна из проблем, которую я вижу, заключается в том, что на каждой итерации
while ($stmt->fetch())
он каждый раз записывает переменную $ array и в конечном итоге возвращает последний массив. + Изменить
$array
в
$array[]
чтобы собрать каждую итерацию, и поэтому цикл for - это не просто повторение пар значений ключа одного массива.
print_r($val)
? Посмотрим, как это выглядит.$array
в одномерный массив вgetpostcontent
цикле, поэтомуreturned
в основной код будет только один размер ($returned['content']
и$returned['date']
).