【发布时间】:2014-04-18 21:27:05
【问题描述】:
我不是 php 开发人员,但试图从这个查询中获取数组中的数组:
SELECT distinct d.DiscussionId 作为 DiscussionId,d.AvatarId 作为 AvatarId,d.Heading 作为 Heading,d.body 作为 Body,c.commentid 作为 CommentId,c.userid 作为 UserId,c.comment 作为 Comment 来自讨论作为 d INNER JOIN 评论 AS c ON d.discussionid = c.discussionid WHERE d.DiscussionId = c.DiscussionId
JSON 输出为:
[
{
"DiscussionId": "1",
"AvatarId": null,
"Heading": "New discussion heading",
"Body": "This is the discussion body",
"Comments": [
{
"DiscussionId": "1",
"CommentId": "1",
"UserId": "2",
"Comment": "This is a comment i made"
}
]
},
{
"DiscussionId": "1",
"AvatarId": null,
"Heading": "New discussion heading",
"Body": "This is the discussion body",
"Comments": [
{
"DiscussionId": "1",
"CommentId": "2",
"UserId": "2",
"Comment": "This is a second comment"
}
]
}
]
我需要将所有评论嵌套在一个讨论中。
php 代码在下面,没有错误但没有给出我想要的输出,对于每个讨论可能有几个 cmets 所以我需要 DiscussionId:1 只显示一次,带有多个 cmets 数组
$result = mysql_query($query,$link) or die('Errant query: '.$query);
$model = array();
$record = -1;
$currentWeID = -1;
while($e = mysql_fetch_assoc($result)){
$record++;
$model[] = array();
$model[$record]['DiscussionId'] = $e['DiscussionId'];
$model[$record]['AvatarId'] = $e['AvatarId'];
$model[$record]['Heading'] = $e['Heading'];
$model[$record]['Body'] = $e['Body'];
$model[$record]['Comments'][] = array(
'DiscussionId'=> $e['DiscussionId'],
'CommentId' => $e['CommentId'],
'UserId' => $e['UserId'],
'Comment' => $e['Comment']
);
}
print json_encode ($model);
【问题讨论】:
-
发布您尝试过的代码以及它导致的错误。