2017-03-06 78 views
0

我有一個帖子數組,我想讓我的所有評論進入我的網站。獲取每個帖子json數組的所有評論

每個帖子都有一個streamitem_id

在streamdata表中的職位編號爲streamitem_id

已經張貼在一個給定的文章的評論都在comment_streamitem *

原因下streamdata_comments表我很掙扎是因爲,我想要posts數組內的評論內容數組。但是,兩個頂級查詢需要被DESC減去4,然後當我使用無限滾動時,last_id被傳回並用於第二個查詢中收集並顯示另外4個帖子。所以每次發生這種情況時,我都希望所有評論都附帶指定的帖子。

我已經搜索了一些例子,並且在詢問之前嘗試自己做了一些例子,但是我所有的設法發現它都很接近,是關於WP的文章,這對我來說並不好。使用Array

if ($last_id==0){ 
    $query = "SELECT * 
    FROM streamdata m 
    JOIN streamdata_comments t1 
    WHERE 
    m.streamitem_id=t1.comment_streamitem 
    AND 
    t1.comment_poster=$user1_id 
    GROUP BY m.streamitem_id 
    ORDER BY t1.comment_id DESC LIMIT 4"; 
    $result = mysqli_query($mysqli, $query) or die('Error: ' .mysqli_error($mysqli)); 

    }else{ 
    $testa=$_POST['last_id']; 
    $query = "SELECT * 
    FROM streamdata m 
    JOIN streamdata_comments t1 
    WHERE 
    m.streamitem_id=t1.comment_streamitem 
    AND 
    t1.comment_poster=$user1_id 
    AND 
    t1.comment_id < $testa 
    GROUP BY m.streamitem_id 
    ORDER BY t1.comment_id DESC LIMIT 4"; 
    $result = mysqli_query($mysqli, $query) or die('Error: ' .mysqli_error($mysqli)); 
    } 

    $rowcount = mysqli_num_rows($result); 
    $json = array(); 

    while ($row = mysqli_fetch_assoc($result)) { 

    $json[] = array(
    'streamitem_id' => $row['streamitem_id'], 
    'streamitem_content' => $row['streamitem_content'], 
    } 
    echo json_encode(array('posts' => $json, 'last_id' => $last_id)); 

評論查詢和ARRAY

post詢問我真的不確定我是否有不DESC創建一個單獨的查詢,因爲這將限制量如果放在先前的查詢while循環中,則返回的評論!

$callcomments = "SELECT * 
    FROM streamdata m 
    JOIN streamdata_comments t1 
    WHERE 
    t1.comment_streamitem=m.streamitem_id 
    AND 
    t1.comment_targetuser=$user1_id 
    ORDER BY t1.comment_id DESC "; 
    $check1comments = mysqli_query($mysqli, $callcomments) or die(mysqli_error($mysqli)); 

    $comments = array(); 
    while($rowcomments = mysqli_fetch_array($check1comments)){ 
    $comments[] = array(
    'comment_id' => $rowcomments['comment_id'], 
    'comment_content' => $rowcomments['comment_content'], 
    ); 
    } 
    echo json_encode(array('posts' => $comments)); 

回答

0

我現在有這個工作。我改變了評論查詢以匹配stream循環中的streamitem_id和我的streamdata_comments表中的comment_streamiem行。 然後,我在posts while循環中添加了下面的代碼和它的數組,然後將"Streamitem_comments => $streamitem_comments,添加到$json數組中。

$callcomments = "SELECT * FROM streamdata_comments WHERE comment_streamitem = 
    ".$row['streamitem_id'].""; 
    $check1comments = mysqli_query($mysqli, $callcomments) or   
    die(mysqli_error($mysqli)); 
    $comment_num=mysqli_num_rows($check1comments); 
    $commenting = array(); 
    while ($rowcomments = mysqli_fetch_assoc($check1comments)){ 
    $commentsArray = array(
    'comment_id' => $rowcomments['comment_id'], 
    'comment_content' => $rowcomments['comment_content'], 
    'comment_streamitem' => $rowcomments['comment_streamitem'] 
    ); 
    $commenting[] = $commentsArray; 
    } 
相關問題