如何在PHP中编码Json数组?

时间:2012-03-06 13:29:37

标签: php phpmyadmin

您好我是php的新手,我不知道我该怎么做?

我的数据库中有四行,我想用php编码这些行的Json数组,我该怎么办呢。

下面是我的代码,请查看此内容并给我一个建议 -

<html>
<head>
<title>First</title>
<body>
<?php
$con = mysql_connect("localhost","root");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("ContactDB", $con);

$result = mysql_query("SELECT * FROM mycontacts");

echo "<table border='1'>
<tr>
<th>PhoneNumber</th>
<th>Name</th>
<th>Lastname</th>
</tr>";

 while($row = mysql_fetch_array($result))
  {
  $data=array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']); 
print_r (json_encode(array_chunk($data, 1, true)));  
}


mysql_close($con);
?>

</body>
</head>
</html>

我得到这样的回复

[{ “******中国”: “1234567”},{ “名称”: “Ujjwal”}] [{ “******中国”: “765423”},{ “名称”: “ABC”}] [{ “******中国” : “098765123”},{ “名称”: “A”}]

但我想用这种格式

[{“PhoneNumber”:“1234567”,“Name”:“X”},{“PhoneNumber”:“765423”,“Name”:“ABC”},{“PhoneNumber”:“098765123”,“名称 “:” A“}]

5 个答案:

答案 0 :(得分:1)

替换

while($row = mysql_fetch_array($result))
{
  $data=array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']); 
  print_r (json_encode(array_chunk($data, 1, true)));  
}

$data = array();
while($row = mysql_fetch_array($result))
{
  $data[] = array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']); 
}
print_r (json_encode($data));  

答案 1 :(得分:0)

不要使用array_chunk

json_encode($ data)应该这样做。

你可能还想在循环之前将数据声明为数组,然后用户$ data [] = json_encode(.....)

答案 2 :(得分:0)

试试这个:

$json = json_encode($data)

答案 3 :(得分:0)

尝试替换

$data= array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']);

$data= (object) array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']);

答案 4 :(得分:0)

以下如何操作的示例。我是否还可以建议在MySQL查询中使用AS(并避免使用*;只需获取所需的数据)。

$q = mysql_query("SELECT ... AS ... ...");
$rows = array();
while($r = mysql_fetch_assoc($q)) {
    $rows[] = $r;
}
print json_encode($rows);