【问题标题】:How can I return json from my specific sql query?如何从我的特定 sql 查询中返回 json?
【发布时间】:2015-08-07 09:05:19
【问题描述】:

我有以下 php 代码:

<?php
$servername = "host";
$username = "user";
$password = "passw";
$dbname = "dbname";

$conn3 = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

$conn3->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$q3 = $conn3->prepare("SELECT c.one, c.two FROM table c");
    $q3->execute();
if($q3->rowCount()>0)
{
    $check3 = $q3->fetchAll(PDO::FETCH_ASSOC);
    $arr = array();
    foreach ($check3 as $row) {
    $arr[] = $row;
     //how can I return json format here?
    }   
}
$conn2 = null;
?>

并且此查询返回元素对。但是如何修改上面的代码以获取元素的json格式为:

{key1:OSO;key2:AIKA} 等

这样我以后可以在 jquery 文件中使用它来打印它,并具有以下功能:

$.getJSON('list.php', function(json) {
    //assuming list.php resides with list.html directory
    //console.log(json)
      console.log(json.result.key1);
       console.log(json.result.key2);

    });

谢谢!

【问题讨论】:

    标签: php jquery mysql json


    【解决方案1】:

    改变

    SELECT c.one, c.two FROM table c
    

    SELECT c.one as key1, c.two as key2 FROM table c
    

    然后将结果封装成json(foreach之后):

    echo json_encode(array(
        'result'=>$arr
    ));
    

    但您很可能需要在 jquery 中循环遍历它们。
    您的 json 输出将类似于:

    result: [
        {'key1': 'asd', 'key2': 'qwe'},
        [...]
        {'key1': 'asd', 'key2': 'qwe'}
    ]
    

    像这样循环遍历它们:

    //first, see how it looks:
    console.log(json.result);
    jQuery.each( json.result, function( i, subresult ) {
        console.log(subresult);
        // you should be able to use: subresult.key1
    });
    

    【讨论】:

    • 嘿,谢谢,你能给我一些例子来说明如何在 jquery 中循环它们吗?谢谢!
    • 谢谢,我做了if($q3-&gt;rowCount()&gt;0) { $check3 = $q3-&gt;fetchAll(PDO::FETCH_ASSOC); $arr = array(); foreach ($check3 as $row) { $arr[] = $row; } echo json_encode( 'result'=&gt;$arr ); },但现在我收到错误Parse error: syntax error, unexpected T_DOUBLE_ARROW,我不确定这里有什么问题:|
    • 我的错。这是 json_encode(array('result'=>$arr));我在打电话
    • 嘿@Alex,感谢您的奉献!您的解决方案奏效了!
    猜你喜欢
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2021-09-19
    相关资源
    最近更新 更多