Json_encode массив данных из БД

Я не уверен, как написать следующий код.

    $rowID = $_POST['rowID'];
    if ($listing = $Listings->getData($rowID)) {
        $jsonArray = array(

            'listing_number' => $listing['listing_number'],


        );
        exit(json_encode($jsonArray));
    }

Когда я делаю это таким образом, ответ Undefined Index: listing_number.

Однако, если я напишу это так,

$rowID = $_POST['rowID'];
if ($listing = $Listings->getData($rowID)) {
    $jsonArray = array(

        'listing_number' => $listing[0],


    );
    exit(json_encode($jsonArray));
}

Ответ

{"listing_number":{"id":"24","client_id":"1","address":"","address_2":"","city":"","state":"","zip":"","price":"","listing_number":"asdasdasdasd","remarks":"","link":"","status":"","bd":"","ba":"","lot_sz":"","sq_ft":"","yr":"","type":"","thumb":""}}

Что позволяет мне знать, что мой SQL и PHP верны, я просто не знаю, как правильно получить доступ к $listing['listing_number].

Любая помощь будет оценена по достоинству.

Откуда вы собираетесь получить к нему доступ? PHP? JS?

Qirel 10.05.2019 14:45

Вам нужно использовать $listing[0]['listing_number'] edit: вы сказали, что это stdClass, поэтому вам нужно использовать $listing[0]->listing_number

GrumpyCrouton 10.05.2019 14:46
$listing = $Listings->getData($rowID) эти данные могут быть массивом, поэтому получение индекса 0 даст вам 1 запись. Затем вы можете получить "listing_number" этих данных.
WebMan 10.05.2019 14:46

@GrumpyCrouton Когда я делаю $list[0]["listing_number"]. Я получаю эту ошибку: «Неустранимая ошибка: необработанная ошибка: невозможно использовать объект типа stdClass в качестве массива»

KevinM1990112qwq 10.05.2019 14:47

@ KevinM1990112qwq это из-за того, что данные в индексе 0 могут быть объектами. поэтому вы должны получить это как $listing[0]->listing_number

WebMan 10.05.2019 14:47

Тогда это $listing[0]->listing_number или $listing[0]->getlisting_number

Cid 10.05.2019 14:48

Замечательно, $listing[0]->listing_number сработало, большое спасибо.

KevinM1990112qwq 10.05.2019 14:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

как сказано в комментарии ГрумпКрутон, ваш запрос возвращает массив результатов. Поэтому, если вы хотите получить доступ к значению в первом результате, вам сначала нужно получить доступ к этому результату, используя его индекс:
$listing[0]->listing_number.

$rowID = $_POST['rowID'];
if ($listing = $Listings->getData($rowID)) {
    $jsonArray = array(
        'listing_number' => $listing[0]->listing_number,
    );
    exit(json_encode($jsonArray));
}

P.S. Вы можете преобразовать объект в массив с помощью простого приведения ( $result = (array) $result ), но в вашем случае это не обязательно. Преобразование вашего объекта в массив позволит вам получить доступ к его данным, используя result['key'], а не result->key.

Другие вопросы по теме