首页 > 解决方案 > json_encode 数据库中的数据数组

问题描述

我不确定如何编写以下代码。

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

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


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

当我这样做时,响应是未定义索引: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]正确访问。

任何帮助,将不胜感激。

标签: phpjquerymysqlajax

解决方案


正如GrumpCrouton在评论中所说,您的查询正在返回一组结果。所以如果你想访问第一个结果中的一个值,你首先需要使用它的 index 来访问这个结果:
$listing[0]->listing_number

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

PS您可以使用简单的强制转换($result = (array) $result)将对象转换为数组,但在您的情况下不是必须的。将您的对象转换为数组将允许您使用result['key']而不是访问它的数据result->key


推荐阅读