Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php编码json_Php_Sql Server_Json_Encoding - Fatal编程技术网

用php编码json

用php编码json,php,sql-server,json,encoding,Php,Sql Server,Json,Encoding,所以这里有一件事: 我正在开发一个后端(php),通过android应用程序与Microsoft SQL Server连接,作为用户界面 然而,当涉及到用php编码json时,我面临一个问题 公平地说,我是php的初学者 这是我的代码: $result = sqlsrv_query( $conn, 'select * from table1'); $row = sqlsrv_fetch_array($result); $array = array(); while($row =sqlsrv_

所以这里有一件事:

我正在开发一个后端(php),通过android应用程序与Microsoft SQL Server连接,作为用户界面

然而,当涉及到用php编码json时,我面临一个问题

公平地说,我是php的初学者

这是我的代码:

$result = sqlsrv_query( $conn, 'select * from table1');
 $row = sqlsrv_fetch_array($result);
 $array = array();
while($row =sqlsrv_fetch_array($result))
{
    $array[]=$row;
}
echo json_encode(array("data"=>array_values($array)));
因此,到目前为止,该表实际上没有任何内容: 只有两个属性:姓名和年龄

这里的问题是,回报如下:

{"data":[{"0":"Miriana","name":"Miriana","1":null,"age":null},{"0":"Luke","name":"Luke","1":null,"age":null},{"0":"Sara","name":"Sara","1":null,"age":null},{"0":"Fuss","name":"Fuss","1":20,"age":20}]}
在值之前总是有一个数字,然后是实数键和值

例如:

"0":"Miriana"
 "1":null
非常感谢任何想查看此内容的人

**我检查了这些链接:
**

您需要指定提取类型:

while($row =sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC))
默认情况下,可以同时获得数字键和关联键


并且您可能应该在循环之前删除提取,因为您将不会获得当前结果中的第一行。

sqlsrv_fetch_数组的默认提取类型是
sqlsrv_fetch_BOTH
,它将行作为关联数组和数字数组进行提取,因此您可以同时获得这两种类型。如果只需要关联数组,请将
sqlsrv\u fetch\u array
的第二个参数设置为
sqlsrv\u fetch\u ASSOC

$result = sqlsrv_query( $conn, 'select * from table1');
$array = array();
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC))
{
    $array[]=$row;
}
echo json_encode(array("data"=>array_values($array)));
删除了第一次提取,因为如果这样做,将无法获取第一行


参考资料:

echo json_encode($array)怎么样?或者如果您需要'data'
echo json_encode(array(“data”=>$array))的键