Я не могу получить значение, чтобы остаться в моей переменной $ _SESSION - PullRequest
1 голос
/ 05 июня 2011

Я пытаюсь получить значения из индексированного массива, но когда я использую переменную в качестве индекса (который равен индексу в массиве), он не появляется. Я получаю Undefined Index ошибку. Почему это происходит? Кто-нибудь знает? Спасибо!

У меня есть следующий код:

$bookarray = array();
                $books = mysqli_query($db, "SELECT * FROM books");
                while($row = mysqli_fetch_assoc($books)){
                    $bookarray[$row['bookID']] = array(
                        'title' => $row['title'],
                        'author' => $row['author'],
                        'price' => $row['price']
                    );
                }
                echo"<hr>";
                print_r($bookarray);
                echo"<hr>";
                echo $bookarray[5]['title']."<br />";


                foreach($_SESSION['cart'] as $cartedbook){
                    echo $cartedbook;
                    echo $bookarray[$cartedbook]['title'];
                    echo "<br />";
                }

Это вывод:

Книга


Array
(
[1] => Array
    (
        [title] => Java 2 for Pro Deelopers
        [author] => Michael Morgan
        [price] => 34.99
    )

[2] => Array
    (
        [title] => Installing XAMPP
        [author] => Thomas Down
        [price] => 24.99
    )

[3] => Array
    (
        [title] => Alice Through the Looking Glass
        [author] => Louis Carroll
        [price] => 72.35
    )

[4] => Array
    (
        [title] => Quantum Mechanics in 124 Hours
        [author] => Neils Bohr
        [price] => 24.99
    )

[5] => Array
    (
        [title] => PHP For Fun And Profit
        [author] => Thomas Shenk
        [price] => 49.99
    )

[28] => Array
    (
        [title] => Test
        [author] => Eric Gross
        [price] => 100.00
    )

)


PHP для удовольствия и прибыли
5
Примечание : неопределенный индекс: 5 в C: \ xampp \ htdocs \ FinalProject \ cart.php в строке 52


3
Примечание : неопределенный индекс: 3 в C: \ xampp \ htdocs \ FinalProject \ cart.php в строке 52

Название Автор Цена

Ответы [ 2 ]

1 голос
/ 05 июня 2011

Результаты запросов MySQL являются строками, даже если они являются целыми числами в базе данных. Это приводит к тому, что ваш $bookarray ассоциируется с числовыми строками вместо числовых индексов, которые вы, вероятно, пытаетесь использовать против него.

Попробуйте привести этот идентификатор к типу int:

$bookarray[(int) $row['bookID']] = array(
0 голосов
/ 05 июня 2011

Если я посмотрю на источник вашего вопроса, кажется, что перед цифрой стоит символ новой строки (так, это будет "\n5" вместо 5, который по логике не может быть найден), вы можете это подтвердить? Что дает var_dump($cartedbook);?

...