如何使用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));}