SQL/Wordpress/AJAX:使用循环格式化 JSON

Posted

技术标签:

【中文标题】SQL/Wordpress/AJAX:使用循环格式化 JSON【英文标题】:SQL/Wordpress/AJAX : Format JSON With Loop 【发布时间】:2016-06-13 23:14:19 【问题描述】:

问题

我正在尝试查询我的数据库(wp_usermeta 表)并将其导出为 JSON 格式以供自动完成插件处理。我需要将数据格式化为:

"suggestion":"copmany1", "umeta_id":"1","suggestion":"company2", "umeta_id":"2", etc.

到目前为止

我当前的代码输出信息如下:

"suggestions":["concept9 test","Company"],"data":["58","77"]

这是我的代码:

$query = $_GET["query"];



    // escape values passed to db to avoid sql-injection
    $query = $wpdb->get_results( "SELECT DISTINCT umeta_id, meta_value FROM wp_usermeta WHERE meta_key='company' AND meta_value LIKE '".$query."%' order by umeta_id" );

    $suggestions = array();

    foreach($query as $row) 
        $suggestions[] = $row->meta_value;
        $data[] = $row->umeta_id;

        $response1 = array(
        'suggestions' => $suggestions,
        'data' => $data,
    );
    


    $response = json_encode( $response1 );
    echo $response;
    exit();

谢谢!

【问题讨论】:

【参考方案1】:

试试这样:

$query = $_GET["query"];
// escape values passed to db to avoid sql-injection
$query = $wpdb->get_results( "SELECT DISTINCT umeta_id, meta_value FROM wp_usermeta WHERE meta_key='company' AND meta_value LIKE '".$query."%' order by umeta_id" );
$suggestions = array();
foreach($query as $row) 
    array_push($suggestions, array(
            'suggestion' => $row->meta_value,
            'umeta_id' => $row->umeta_id
        )
    );

echo json_encode( $suggestions );
exit();

如果您需要进一步解释,请在此处评论

【讨论】:

嗨@Sasha89 - 感谢您的建议!不幸的是,这会产生空值。这可能是因为 foreach 循环将通过查询,而不是公司。由于 wp_usermeta 表的格式如下所示,也许我们需要在其中添加另一个循环:codex.wordpress.org/Database_Description#Table:_wp_usermeta ?谢谢! 你能在 foreach 中添加这一行并发布结果吗:var_dump($row);死; 这就是我得到的object(stdClass)#451 (2) ["umeta_id"]=> string(2) "58" ["meta_value"]=> string(13) "concept9 test" 这是我的预期,所以我不确定你为什么会得到“null” 天哪,你完全正确..正在输出旧数组。它现在应该可以工作了!我得到["suggestion":"concept9 test","umeta_id":"58","suggestion":"Company","umeta_id":"77"] - 非常感谢!

以上是关于SQL/Wordpress/AJAX:使用循环格式化 JSON的主要内容,如果未能解决你的问题,请参考以下文章

使用数字格式插件循环格式化数字

04 循环结构概述和for语句的格式及其使用

04循环结构概述和for语句的格式及其使用

for循环练习题-使用嵌套循环,按照下面的格式打印字母。

for循环练习题-使用嵌套循环,按照下面的格式打印字母。

for循环练习题-使用嵌套循环,按照下面的格式打印字母。