PHP Недопустимое смещение строки (ошибка при выводе отдельных значений)

0

Я создал массив в моем файле 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); для извлечения всех элементов в массиве, но выбрасывает "Недопустимое смещение строки", когда я пытаюсь получить к ним доступ по отдельности. Помогите?

  • 0
    Можете ли вы вставить свой массив print_r($val) ? Посмотрим, как это выглядит.
  • 0
    Вы reassinging $array в одномерный массив в getpostcontent цикле, поэтому returned в основной код будет только один размер ( $returned['content'] и $returned['date'] ).
Теги:
arrays

1 ответ

1
Лучший ответ

Одна из проблем, которую я вижу, заключается в том, что на каждой итерации

while ($stmt->fetch())

он каждый раз записывает переменную $ array и в конечном итоге возвращает последний массив. + Изменить

$array 

в

$array[] 

чтобы собрать каждую итерацию, и поэтому цикл for - это не просто повторение пар значений ключа одного массива.

  • 1
    Большое спасибо. Наконец-то, сегодня я могу спать спокойно из-за тебя. Вы спасатель. Я бы проголосовал за это миллион раз, если бы мог. Еще раз спасибо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню