Хранение нескольких данных в переменной массива - PullRequest
0 голосов
/ 05 декабря 2018

Мне нужна помощь с хранением данных в массивах.У меня проблема с переменной массива $_SESSION, потому что она позволяет мне сохранять только одни данные за раз, когда они перезаписывают данные.

Когда я пытаюсь это сделать:

$link = mysqli_connect('localhost', 'mydbusername', 'mydbpassword', 'mydbname');
$campaign_db = "SELECT campaign_name FROM campaign WHERE username = 'myusername'";

if($stmt = mysqli_prepare($link, $campaign_db))
{
    // Set parameters
    $param_username = $_SESSION['username'];

    // Attempt to execute the prepared statement
    if(mysqli_stmt_execute($stmt))
    {
        // Bind variables to the prepared statement as parameters
        mysqli_stmt_execute($stmt);

        $results = mysqli_stmt_get_result($stmt);

        while ($rows = mysqli_fetch_array($results, MYSQLI_NUM))
        {
            foreach ($rows as $campaign)
            {
                $_SESSION['campaign'] = $campaign;
            }
        }
    }
    print_r($_SESSION);
    // Close statement
    mysqli_stmt_close($stmt);

}

Я получу только это:

Array
(
    [campaign] => facebook
)

Это должно быть:

Array 
( 
    [campaign] => somename [campaign] => youtube [campaign] => google [campaign] => linkedlin [campaign] => bing [campaign] => facebook 
)

Я пробовал это:

$_SESSION['campaign'][] = $campaign;

Это дает мне ошибку: Фатальная ошибка: неперехваченная ошибка: оператор [] не поддерживается для строк.Трассировка стека: # 0 {main} брошено.

Не могли бы вы показать мне пример того, как я могу вставить и сохранить более 1 данных в массиве для переменной $_SESSION?

РЕДАКТИРОВАТЬ: Когда я пытаюсь это:

while ($rows = mysqli_fetch_array($results, MYSQLI_NUM))
{
    $_SESSION['campaign'] = array($rows);
)

И я также пробую это:

while ($rows = mysqli_fetch_array($results, MYSQLI_NUM))
{
    foreach ($rows as $campaign)
    {
        $_SESSION['campaign'] = array($campaign);
    }
)

Это все еще дает мне это:

 [campaign] => Array
    (
        [0] => facebook
    )

1 Ответ

0 голосов
/ 05 декабря 2018

Вы должны инициализировать $_SESSION['campaign'] в строку где-то в вашем коде.Где бы вы ни делали, вам нужно изменить его на

$_SESSION['campaign'] = array('string value')

или, если это пустая строка, просто используйте array(), и тогда вы сможете использовать

$_SESSION['campaign'][] = $campaign;

вцикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...