使用PHP将mysql中的数据提取到JSON中

使用PHP将mysql中的数据提取到JSON中,php,arrays,json,mysqli,Php,Arrays,Json,Mysqli,我正在使用以下PHP代码从数据库中获取一些数据。它包含聊天室和聊天室中用户之间的消息。我想返回两个用户的信息以及他们交换的消息。我的测试数据有两个ID为1和2的聊天。聊天室1中有两条消息,但由于某些原因,它们会在聊天室1和聊天室2中返回。我不确定代码中的问题是什么 $response = array(); $myArray = array(); while($row = $user_chats->fetch_array()) { $myArray["chatId"] = $row

我正在使用以下PHP代码从数据库中获取一些数据。它包含聊天室和聊天室中用户之间的消息。我想返回两个用户的信息以及他们交换的消息。我的测试数据有两个ID为1和2的聊天。聊天室1中有两条消息,但由于某些原因,它们会在聊天室1和聊天室2中返回。我不确定代码中的问题是什么

 $response = array();


 $myArray = array();
while($row = $user_chats->fetch_array())
{
 $myArray["chatId"] = $row["chat_id"];
 $myArray["user1_id"] = $row["user1"];
 $myArray["user2_id"] = $row["user2"];
 $myArray["user1_name"] = $user1_name;
 $myArray["user2_name"] = $user2_name;
 $myArray["user1_profile_pic"] = $result_user1["profile_pic"];
 $myArray["user2_profile_pic"] = $result_user2["profile_pic"];
 $messages = array();
 $chat_idd = $row["chat_id"];
 $chat_messages = mysqli_query($conn,"SELECT * FROM messages WHERE chatID = '$chat_idd' ORDER BY timestamp ASC");
 $count = 1;
 while($roww = $chat_messages->fetch_array()) {
 if ($row["chat_id"] == $roww["chatID"]) {
 $messages["message_id"] = $roww["message_id"];
 $messages["sender"] = $roww["sender"];
 $messages["chatId"] = $roww["chatID"];
 $messages["text"] = $roww["text"];
 $messages["timestamp"] = $roww["timestamp"];
 $myArray["message"][$count] = $messages;
 $count = $count + 1;
 }
 else {
 $myArray["message"]= 0;

 }
 }
 $response[] = $myArray;

}
echo json_encode($response);
生成以下响应:

[{“chatId”:“1”,“user1\u id”:“32132132”,“user2\u id”:“2121”,“user1\u name”:“dwqd”,
“user2\u name”:“DQDWDWDW”,“user1\u profile\u pic”:“http:\/\/graph.facebook.com\/dwqwQDWDWDWDWDWDWDW\/picture?type=large”,“user2\u profile\u pic”:“WDQDWWQDWDWDWDWDWDWDWDWDWDWDWDW”,“message”:{“1”:“message\u id”:“24242241”,“sender”:“32132132”,“chatId”:“1”,“text”:“你好,我是”,
“时间戳”:“2016-05-2417:13:08”},“2”:{“消息id”:“421421”,“发送者”:“32132”,
“chatId”:“1”,“text”:“great”,“timestamp”:“2016-05-2417:15:08”}}},{“chatId”:“2”,“user1\u id”:“23413524635”,“user2\u id”:“32132132”,“user1\u name”:false,
“用户2\u名称”:“dwqd”、“用户1\u配置文件\u图片”:
Wdqdqwqdqwqdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqdq,
“邮件”:{“1”:{“邮件id”:“24242241”,“发件人”:“32132132”,“聊天id”:“1”,“文本”:“你好,我是”,
“时间戳”:“2016-05-24 17:13:08”},“2”:{“邮件id”:“421421”,“发件人”:“32132132”,“聊天id”:“1”,

“text:“great”,“timestamp:”2016-05-2417:15:08“}}}}}]
在循环的每次迭代中,您都需要初始化$myArray,例如

while($row=$user\u chats->fetch\u array()){
$myArray=array();