2

我只需要从下面的idandname字段创建一个 json 数组,同时输出其他的。我怎样才能最好地做到这一点?我试图得到这样的输出:

Peter    30     1 Elm Street 91550  {"userId":"1","userName":"Peter"}
James    31     2 Elm Street 91551  {"userId":"2","userName":"James"}
John     32     3 Elm Street 91552  {"userId":"3","userName":"John"}
Andrew   34     4 Elm Street 91553  {"userId":"4","userName":"Andrew"}

稍后我将以不同的形式将 json 数组用于其他内容。数组键必须保持不变并且不能更改。

输出脚本就像这样非常简单。

    $stmt = $conn->prepare("select id, name, age, address, pincode from json");
    $stmt->execute();

    while( $row = $stmt->fetch() ) {

        echo $row['name']." ".$row['age']." ".$row['address']." ".$row['pincode'];

    }

我目前正在这样做,但是您有没有更好的方法呢?

while( $row = $stmt->fetch() ) {
        echo $row['name']." ".$row['age']." ".$row['address']." ".$row['pincode'];

        $myarray['userId'] = $row['id'];
        $myarray['userName'] = $row['name'];

        echo json_encode($myarray);
        echo '<br>';
    }

还有更多字段将进入数组。我在这个例子中只使用了几个。

4

2 回答 2

1

为了减少行数并节省变量的使用,您可以这样做:

while( $row = $stmt->fetch() ) {
        echo $row['name']." ".$row['age']." ".$row['address']." ".$row['pincode'];

        echo json_encode(array('userId' => $row['id'], 'userName' => $row['name']));
        echo '<br>';
    }

另一种方法是使用foreach打印您的值。关于Json,好吧,和以前一样......

while( $row = $stmt->fetch() ) {
    foreach ($row as $value)
    {
        echo $value.' ';
    }

    echo json_encode(array('userId' => $row['id'], 'userName' => $row['name']));
    echo '<br>';
}
于 2013-05-25T12:40:06.340 回答
0

尝试使用fetch_array 之类的

$result = $stmt->fetch_array();
json_encode($result);

并且不要使用 mysql_* 函数,因为它已被贬低,而是您可以使用 mysqli_* 或 pdo 语句 REFER THIS

您也可以使用fetchAll();但我认为它只会在 PDO 中使用

于 2013-05-25T12:31:08.220 回答