我需要仅从下面的id
和name
字段创建一个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>';
}
还有更多字段会进入数组。我在这个例子中只使用了几个。
答案 0 :(得分: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>';
}
答案 1 :(得分:0)
尝试 fetch_array ,如
$result = $stmt->fetch_array();
json_encode($result);
并且不要使用mysql_ *函数,因为它是被删除的,而是你可以使用mysqli_ *或pdo语句 参考 THIS
你也可以使用 fetchAll();但我认为它只会在PDO中使用