如何使用PHP从我的数据库中获取JSON对象
我是如何使用PHP从我的数据库中获取JSON对象,php,json,database,Php,Json,Database,我是PHP开发的初学者,我对JSON输出有问题 我的JSON(数据库中的元素)以方括号(JSON数组)开头,如下所示: [{"Ut_Email":"prova@randomemail.it"}]. {"Ut_Email":"prova@randomemail.it"} 不幸的是,我只想看到JSON对象,如下所示: [{"Ut_Email":"prova@randomemail.it"}]. {"Ut_Email":"prova@randomemail.it"} 可能吗 这是我的PHP代码
PHP
开发的初学者,我对JSON
输出有问题
我的JSON
(数据库中的元素)以方括号(JSON
数组)开头,如下所示:
[{"Ut_Email":"prova@randomemail.it"}].
{"Ut_Email":"prova@randomemail.it"}
不幸的是,我只想看到JSON
对象,如下所示:
[{"Ut_Email":"prova@randomemail.it"}].
{"Ut_Email":"prova@randomemail.it"}
可能吗
这是我的PHP
代码:
<!DOCTYPE html>
<html>
<body>
<?php
mysql_connect("localhost","name","")
or die("Impossibile connettersi al server MySQL.\n");
//select the db
mysql_select_db("name")
or die("Impossibile aprire il database.\n");
//create the query
$sql=mysql_query("select Ut_Email from utente");
/*Il metodo "mysql_fetch_assoc" restituisce un array in base alla query
fatta e incrementa il dato*/
while($row=mysql_fetch_assoc($sql))
//inseriamo tutto nella variabile output
$output[]=$row;
/*print the json object*/
print(json_encode($output));
//close the connection
mysql_close();
?>
</body>
</html>
只是不要循环并去掉输出数组:
$sql=mysql_query("select Ut_Email from utente");
if($row=mysql_fetch_assoc($sql)){
print(json_encode($row));
}
您正在将查询结果添加到数组中,以便json输出包含方括号(在javascript中是数组)。如果只想输出一行,可以删除while循环,只需调用
$row=mysql\u fetch\u assoc($sql)然后在$row
上使用json_编码。如果需要返回多行,则需要数组,否则它不是有效的json。由于SQL查询获取用户时没有任何筛选器,因此可以合理地预期该查询的结果具有多个结果。基于此,我想说的是保留循环并将赋值放松到$output
,除非您计划稍后使用它,然后保持原样:
<!DOCTYPE html>
<html>
<body>
<?php
mysql_connect("localhost","name","")
or die("Impossibile connettersi al server MySQL.\n");
//select the db
mysql_select_db("name")
or die("Impossibile aprire il database.\n");
//create the query
$sql=mysql_query("select Ut_Email from utente");
/*Il metodo "mysql_fetch_assoc" restituisce un array in base alla query
fatta e incrementa il dato*/
while($row=mysql_fetch_assoc($sql))
{
//inseriamo tutto nella variabile output
$output[]=$row; // OK if you plan to use $output later, otherwise unnecessary.
/*print the json object*/
print( json_encode( $row ) ); // Just print the $row testing
}
//close the connection
mysql_close();
?>
</body>
</html>
但我只看到一个元素,而不是全部。我用你的解决方案解决了,但用while代替if。谢谢你需要一个数组,你说你不想看到括号,这就是这段代码将要做的。我需要可视化所有元素,但没有“[”“]”,才能在我的android应用程序中使用它。谢谢你的帮助@Luke如果您向我展示您的java代码,我将向您展示如何解析像这样解决的itI:while($row=mysql_fetch_assoc($sql)){print(json_encode($row));}