json_encode массив данных из БД - PullRequest
0 голосов
/ 10 мая 2019

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

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

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


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

Когда я делаю это таким образом, ответом является неопределенный индекс: перечисление_номер.

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

$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].

Буду признателен за любую помощь.

1 Ответ

1 голос
/ 10 мая 2019

как GrumpCrouton сказал в комментарии, ваш запрос возвращает массив результатов. Поэтому, если вы хотите получить доступ к значению в первом результате, вам сначала нужно получить доступ к этому результату, используя его индекс:
$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.

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