从数据库中检索特定行并显示特定行中的所有数据并使用php发送json

时间:2015-04-04 04:44:24

标签: php mysql json mysqli header

我想使用php和mysqli从数据库中检索特定的行。

例如:

我想用userid = 2

检索数据行
$userid =2;

然后我使用$ userid给出了来自数据库的用户电子邮件,名称和密码:

include("includes/connect.php");
$user = "SELECT * FROM account WHERE user_id = $userid " ;
$query = mysqli_query ($conn,  $user);        

while($result = mysqli_fetch_array ($query)){
      $name = $result['username'];
      $password = $result['user_password']; 
      $email = $result['user_email'];           
  }

然后我想将用户名,密码和用户ID = 2的电子邮件发送到json中的移动应用程序。

之后怎么办呢?

2 个答案:

答案 0 :(得分:2)

您需要使用json_encode传递数据:

$data = array();
while($result = mysqli_fetch_array ($query)){
  $data['username'] = $result['username'];
  $data['user_password'] = $result['user_password']; 
  $data['user_email'] = $result['user_email'];           
}

echo json_encode($data);

此外,您可以使用mysqli_fetch_assoc从数据库中检索json数据:

$row=mysqli_fetch_assoc($query)
echo json_encode($row);

More information about mysqli_fetch_assoc function.

注意,如果您确定只返回一行(在这种情况下,我认为只返回一行,因为通常user_id是唯一的),不需要使用while

答案 1 :(得分:1)

首先,您需要添加此行header('Content-Type: application/json');  将您的json文件输出到浏览器,并查看while循环中的更改,并调用函数json_encode()

header('Content-Type: application/json');

include("includes/connect.php");
$user = "SELECT * FROM account WHERE user_id = $userid " ;
$query = mysqli_query ($conn,  $user);        

$json = array();

while($result = mysqli_fetch_array ($query)){
      $json['name'] = $result['username'];
      $json['password'] = $result['user_password']; 
      $json['email'] = $result['user_email'];           
  }

echo json_encode($json);

阅读mote:

  

http://php.net/manual/en/function.json-encode.php