无法从PHP文件中查看JSON数据

时间:2017-02-14 05:45:38

标签: php mysql json

我正在使用MySQL并在其中创建了2个表; UsersActivity。用户表包含以下数据:

enter image description here

目前我只使用上述数据。我希望这些数据以JSON格式显示,然后我将在我的Android应用程序中使用它。我试图转换它,但我得到以下结果:

  


(!)警告:   mysqli_query()需要至少2个参数,给出1   第 18 行的D:\ xampp \ htdocs \ MobileApp \ index.php   呼叫   Stack #TimeMemoryFunctionLocation 10.0015134480 {main}()... \ index.php 0 20.0034141920getUserName()... \ index.php 38 30.0034142272http:// www.php.net/function.mysqli-query”   target ='_ new'> mysqli_query()... \ index.php 18   

     

(!)警告:   mysqli_fetch_array()期望参数1为mysqli_result,null   在D:\ xampp \ htdocs \ MobileApp \ index.php中给出    20 调用堆栈#TimeMemoryFunctionLocation 10.0015134480 {main}()... \ index.php 0 20.0034141920getUserName()... \ index.php :< / b> 38 30.0050142240http://www.php.net/function.mysqli-fetch-array'   target ='_ new'&gt; mysqli_fetch_array()... \ index.php 20

{"users":[]}

我已将上述结果分为3个步骤,因此可以清楚地识别出我犯的错误。

以下是我的PHP文件:

require_once ('config.php');

function getUserName()
{
// array for json response
$response = array();
$response["users"] = array();

// Mysql select query
$result = mysqli_query("SELECT * FROM Users");

while ($row = mysqli_fetch_array($result))
{
    // temporary array to create single category
    $tmp = array();
    $tmp["Id"] = $row["Id"];
    $tmp["Name"] = $row["Name"];

    // push category to final json array
    array_push($response["Users"], $tmp);
}
// keeping response header to json
header('Content-Type: application/json');

// echoing json result
echo json_encode($response);
}

getUserName();

我的配置文件:

<?php 
 define("HOST","localhost");
 define("DATABASE","app");
 define("USERNAME","root");
 define("PASSWORD","");

 $con=mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE);
 if(!$con){
    die("Database Connection Error: " . mysqli_connect_error());
 }
 else{
  echo "Connection successful";
 }

我从config获得了“连接成功”。

我不知道我在做什么错。

2 个答案:

答案 0 :(得分:1)

问题来自您使用mysqli_query的方式。

如错误消息mysqli_query所述,需要两个参数。第一个是连接对象,第二个是查询。

即。 :

$result = mysqli_query($con, "SELECT * FROM Users");

然后,使用json_encode() php函数构建这样的json数据。

require_once ('config.php');

function getUserName()
{
    // defines global since $con not in the scope of the function variables
    global $con;

    $response = array();
    while ($row = mysqli_fetch_array($result))
    {
        // temporary array to create single category
        $tmp = array();
        $tmp["Id"] = $row["Id"];
        $tmp["Name"] = $row["Name"];

        // build response array
        $response['users'][] = $tmp;
    }

    // convert $response array to json and return it
    return json_encode($response);
}

// get function return 
$users_name = getUserName();

希望它有所帮助。

答案 1 :(得分:0)

在sql Query

之后添加此行
$sql="insert sql query";

$res=mysqli_query($con,$sql);

添加while循环使用此

$row=mysqli_fetch_array($res)

更新

    <?php
require_once ('config.php');

$result= "SELECT * FROM Users";
$res=mysqli_query($con,$result);

$response = array();

while ($row=mysqli_fetch_array($res)){
        array_push($response,array('Id' =>$row['Id'] ,
    'Name' =>$row['Name']

        //      add element on your array

    ));
    }
    echo json_encode(($response));

    mysqli_close($con);

?>

将config和php文件放在同一个文件夹中