【发布时间】:2014-10-16 20:09:30
【问题描述】:
嘿,伙计们和女孩们:)。这是我的问题。 我在数据库中有两个表(用户和 cmets)。一个用户可以发布 1 个或多个 cmets。我想以 JSON 格式从数据库中检索数据。当我检索数据时,我得到这样的格式
[{"username":"kurtMarko","message":"Kako si mama"},{"username":"kurtMarko","message":"kako si tata"},{"username":"kurtMarko","message":"kako si brate"},{"username":"kurtMarko","message":"kako si sestro"}]
但我想检索像
这样的数据[{"username":"kurtMarko","message":[{"Kako si mama"},{"kako si tata"},{"kako si brate"},{"kako si sestro"}]]
你有什么想法,建议。每条评论都会帮助我。非常感谢。 这是我的代码
require("config.inc.php");
$query = "SELECT comments.message, users.username
FROM comments
LEFT JOIN users ON users.username = comments.username";
try {
$stmt = $db->prepare($query);
$result = $stmt->execute();
} catch(PDOException $ex){
$response["success"] = 0;
$response["message"] = "Database Error!";
die(json_encode($response));
}
$rows = $stmt->fetchAll();
if ($rows) {
$response = array();
foreach ($rows as $row) {
$post["username"]= $row["username"];
$post["message"] = $row["message"];
array_push($response, $post);
}
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "No Post Available!";
die(json_encode($response));
}
【问题讨论】:
-
{"Kako si mama"},{"kako si tata"}它不是一个 json,你不能通过json_encode创建它。只能通过直接操作字符串。 -
@Cheery 好收获。他可能意味着
"Kako si mama","kako si tat"是字符串数组的元素,而不是对象。 OP 你能确认/拒绝吗? -
JSON 需要一个 {key:value} 对,因此 {key} 无效。我只会将您的字符串放在一个数组中,例如:
["Kako si mama","kako si tata", "kako si brate", "kako si sestro"]。一个 json 库应该能够为您做到这一点。 -
["Kako si mama","kako si tata", "kako si brate", "kako si sestro"]的值可以是带有关键信息的 json。如果我输入$post["message"] = array()insted$post["message"] = $row["message"],然后输入foreach 循环,我得到了我想要的,但是我得到了与数据库中的用户名一样多的结果。是否有解决方案让所有消息只获得一个用户名
标签: php json phpmyadmin