Php 如何查询每行的注释表,然后查询回复表并在JSON echo之前将每个结果附加到注释中?
数据应该是动态的,并通过AJAX请求加载。我有一些评论,就在下面。没问题。我在这里遇到的问题是试图查询与每条评论对应的回复表。我的想法是尝试在div中放置一个查询,这样对于每个注释查询,它都会查询所有结果的回复,然后自动将它们附加到JSON echo中。但我犯了个错误。在这一点上,我感到困惑的是,如何将它们结合起来,以获得适当的评论/回复层次结构。有没有办法在div内部获取查询?还是我的想法完全不正确?任何帮助都将不胜感激,因为我在这件事上已经坚持了好几个小时为了简单起见,我删除了div中的大部分数据。Php 如何查询每行的注释表,然后查询回复表并在JSON echo之前将每个结果附加到注释中?,php,mysql,json,ajax,Php,Mysql,Json,Ajax,数据应该是动态的,并通过AJAX请求加载。我有一些评论,就在下面。没问题。我在这里遇到的问题是试图查询与每条评论对应的回复表。我的想法是尝试在div中放置一个查询,这样对于每个注释查询,它都会查询所有结果的回复,然后自动将它们附加到JSON echo中。但我犯了个错误。在这一点上,我感到困惑的是,如何将它们结合起来,以获得适当的评论/回复层次结构。有没有办法在div内部获取查询?还是我的想法完全不正确?任何帮助都将不胜感激,因为我在这件事上已经坚持了好几个小时为了简单起见,我删除了div中的大部
评论查询
$sql="SELECT c.cid, DATE_FORMAT(c.posttime, '%a, %b %D | %l:%i %p'), c.comment,
p.profilepic,
u.fname, u.lname
from taskcomments c
inner join users u on u.uid = c.uid
inner join profile p on c.uid = p.uid
where c.pid = ?";
$stmt3 = $conn->prepare($sql);
$stmt3->bind_param("i", $_POST['cpid']);
$stmt3->execute();
$stmt3->bind_result($cid,$posttime,$comment,$profilepic,$fname,$lname);
$comments = '';
while($stmt3->fetch()){
$comments .= '<div class="comment-block" id="'.$cid.'">
<div class="comment-all-container">
<div class="commenter-info-content">
</div>
</div>
//need each additional query to be appended here before echo
</div>';
$output=array(
'comments' => $comments
);
}
$json=json_encode($output);
echo $json;
$sql=“选择c.cid,日期格式(c.posttime,%a,%b%D |%l:%i%p”),c.comment,
p、 简况图,
u、 fname,u.lname
来自TaskC的评论
u.uid=c.uid上的内部联接用户u
c.uid=p.uid上的内部联接配置文件p
其中c.pid=?”;
$stmt3=$conn->prepare($sql);
$stmt3->bind_param(“i”,$_POST['cpid']);
$stmt3->execute();
$stmt3->bind_result($cid、$posttime、$comment、$profilepic、$fname、$lname);
$comments='';
而($stmt3->fetch()){
$comments.='
//需要在echo之前将每个附加查询追加到此处吗
';
$output=array(
“评论”=>$comments
);
}
$json=json_encode($output);
echo$json;
答复需要追加的查询+div
$sql="SELECT r.rid, DATE_FORMAT(r.replydate, '%a, %b %D | %l:%i %p'), r.reply,
p.profilepic,
u.fname, u.lname
from taskcommentreplies r
inner join users u on u.uid = r.uid
inner join profile p on r.uid = p.uid
where r.cid = ?";
$stmt4 = $conn->prepare($sql);
$stmt4->bind_param("i", $cid);
$stmt4->execute();
$stmt4->bind_result($rid,$replydate,$reply,$profilepic,$fname,$lname);
$replies = '';
while($stmt4->fetch()){
$replies .= '<div class="reply-block" id="'.$rid.'">
<div class="commenter-picture">
<img class="commenter-photo" src="/'.$profilepic.'">
</div>
<div class="commenter-info-content">
</div>
</div>';
}
$sql=“选择r.rid,DATE_格式(r.replydate,'%a,%b%D |%l:%i%p'),r.reply,
p、 简况图,
u、 fname,u.lname
来自taskr
u.uid=r.uid上的内部联接用户u
r.uid=p.uid上的内部联接配置文件p
其中r.cid=?”;
$stmt4=$conn->prepare($sql);
$stmt4->bind_参数(“i”,$cid);
$stmt4->execute();
$stmt4->bind_result($rid、$replydate、$reply、$profilepic、$fname、$lname);
$答复='';
而($stmt4->fetch()){
$回复。='
';
}
给你:您必须将回复查询放在评论查询中,这样对于每个评论查询,它都会查询每个回复。您必须
$stmt->store_result()代码>注释查询,以便在输出的最终结果中使用。
接下来,您必须使用$comments.='
和'
中的注释HTML将注释块
结果附加到原始$comments=''代码>。从注释块中删除最后一个结束语
,我们稍后将使用它。在while($stmt2->fetch())
循环之后,您必须再次使用$comments.='
,其中包含回复块
HTML,以便将每个循环附加到注释块
。最后,在回复循环之外,您必须使用$comments.='
,它关闭块并用块内的回复密封评论块
$sql="SELECT
c.cid, DATE_FORMAT(c.posttime, '%a, %b %D | %l:%i %p'), c.comment,
p.profilepic,
u.fname, u.lname
from taskcomments c
left join users u on u.uid = c.uid
left join profile p on c.uid = p.uid
where c.pid =?
ORDER BY c.posttime ASC";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $_POST['cpid']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($ccid,$cposttime,$ccomment,$cprofilepic,$cfname,$clname);
$comments = '';
while($stmt->fetch()){
$comments .= '
<div class="comment-block" id="'.$ccid.'">
<div class="comment-all-container">
<div class="commenter-picture">
<img class="commenter-photo" src="/'.$cprofilepic.'">
</div>
<div class="commenter-info-content">
<div class="commenter-info">
<div class="commenter-name">
'.$cfname.' '.$clname.'
</div>
<div class="comment-time">
<p>'.$cposttime.'</p>
</div>
</div>
<div class="comment-data-container">
<div class="comment-data">
<p>'.$ccomment.'</p>
</div>
<div class="reply-reply-container">
<a class="reply-tag" onclick="reply(this)">Reply</a>
</div>
</div>
</div>
</div>
';
$sql2="SELECT
r.rid, DATE_FORMAT(r.replydate, '%a, %b %D | %l:%i %p'), r.reply,
p.profilepic,
u.fname, u.lname
from taskcommentreplies r
left join users u on u.uid = r.uid
left join profile p on r.uid = p.uid
WHERE r.cid=?
ORDER BY r.replydate ASC";
$stmt2 = $conn->prepare($sql2);
$stmt2->bind_param('i', $ccid);
$stmt2->execute();
$stmt2->bind_result($rrid,$rreplydate,$rreply,$rprofilepic,$rfname,$rlname);
while ($stmt2->fetch()){
$comments .= '<div class="reply-block" id="'.$rrid.'">
<div class="commenter-picture">
<img class="commenter-photo" src="/'.$rprofilepic.'">
</div>
<div class="commenter-info-content">
<div class="commenter-info">
<div class="commenter-name">
'.$rfname.' '.$rlname.'
</div>
<div class="comment-time">
<p>'.$rreplydate.'</p>
</div>
</div>
<div class="comment-data-container">
<div class="comment-data">
<p>'.$rreply.'</p>
</div>
<div class="reply-reply-container">
<a class="reply-tag" onclick="reply(this)">Reply</a>
</div>
</div>
</div>
</div>
';
}
$comments .= '</div>';
}
$output=array(
'comments' => $comments
);
$json=json_encode($output);
echo $json;
$sql=“选择
c、 cid,日期格式(c.posttime,'%a,%b%D |%l:%i%p'),c.comment,
p、 简况图,
u、 fname,u.lname
来自TaskC的评论
在u.uid=c.uid上左加入用户u
c.uid=p.uid上的左连接配置文件p
其中c.pid=?
c.posttime ASC订购”;
$stmt=$conn->prepare($sql);
$stmt->bind_参数(“i”、$_POST['cpid']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($ccid、$cposttime、$ccomment、$cprofilepic、$cfname、$clname);
$comments='';
而($stmt->fetch()){
$comments.='
“.$cfname.”“.$clname.”
“.$cposttime。”
“.$ccomment。”
回复
';
$sql2=“选择
r、 rid,日期_格式(r.replydate,'%a,%b%D |%l:%i%p'),r.reply,
p、 简况图,
u、 fname,u.lname
来自taskr
在u.uid=r.uid上左加入用户u
r.uid=p.uid上的左连接配置文件p
其中r.cid=?
r.replydate ASC的订单”;
$stmt2=$conn->prepare($sql2);
$stmt2->bind_param('i',$ccid);
$stmt2->execute();
$stmt2->bind_result($rrid、$rreplydate、$rreply、$rprofilepic、$rfname、$rlname);
而($stmt2->fetch()){
$comments.='
“.$rfname.”“.$rlname.”
“.$rreplydate。”
“.$rreply。”
回复
';
}
$comments.='';
}
$output=array(
“评论”=>$comments
);
$json=json_encode($output);
echo$json;
获取整个回复查询并将其放置在评论查询中的循环中,然后将$repays
插入放置//需要在echo
评论之前将每个附加查询附加到此处吗?感谢您的回复,