您好我是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“}]
答案 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);