Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何查询每行的注释表,然后查询回复表并在JSON echo之前将每个结果附加到注释中?_Php_Mysql_Json_Ajax - Fatal编程技术网

Php 如何查询每行的注释表,然后查询回复表并在JSON echo之前将每个结果附加到注释中?

Php 如何查询每行的注释表,然后查询回复表并在JSON echo之前将每个结果附加到注释中?,php,mysql,json,ajax,Php,Mysql,Json,Ajax,数据应该是动态的,并通过AJAX请求加载。我有一些评论,就在下面。没问题。我在这里遇到的问题是试图查询与每条评论对应的回复表。我的想法是尝试在div中放置一个查询,这样对于每个注释查询,它都会查询所有结果的回复,然后自动将它们附加到JSON echo中。但我犯了个错误。在这一点上,我感到困惑的是,如何将它们结合起来,以获得适当的评论/回复层次结构。有没有办法在div内部获取查询?还是我的想法完全不正确?任何帮助都将不胜感激,因为我在这件事上已经坚持了好几个小时为了简单起见,我删除了div中的大部

数据应该是动态的,并通过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
评论之前将每个附加查询附加到此处吗?感谢您的回复,