dongrong5189 2017-03-10 20:56
浏览 28
已采纳

sql查询加载更多

i have a load more button where it is loading comments for specific post from database (post_id). the problem is when i click load more it is loading all the comments from database table

pagecomment.php

$id = $_GET['id'];
$id_post = $id ;//the post or the page id
<div class="cmt-container" >
<?php
$sql = mysqli_query($con,"SELECT * FROM comments WHERE id_post ='$id_post'ORDER BY id DESC limit 2") or die(mysqli_error($con));
$rowCount = mysqli_num_rows($sql);
if($rowCount > 0){
while($affcom = mysqli_fetch_assoc($sql)){
    $name = $affcom['name'];
    $email = $affcom['email'];
    $comment = $affcom['comment'];
    $date = $affcom['date'];

loadmore.php

if(isset($_POST["id"]) && !empty($_POST["id"])){ 
 $queryAll =   mysqli_query($con,"SELECT COUNT(*) as num_rows FROM comments   WHERE id < ".$_POST['id']." ORDER BY id DESC");
$row = mysqli_fetch_assoc($queryAll);
$allRows = $row['num_rows'];

$showLimit = 2;

//get rows query
$query = mysqli_query($con, "SELECT * FROM comments WHERE id <     ".$_POST['id']." ORDER BY id DESC LIMIT ".$showLimit);

//number of rows
$rowCount = mysqli_num_rows($query);

if($rowCount > 0){
while($row = mysqli_fetch_assoc($query)){
    $tutorial_id = $row["id"]; ?>
    <div class="cmt-cnt">
        <div id="cmt-cmt"><img src="<?php echo $row['email']; ?>" alt="" />    </div>
        <div class="thecom">
            <h5><?php echo $row['name']; ?></h5><span data-utime="1371248446" class="com-dt"><?php $curenttime=$row['date'];
                $time_ago =strtotime($curenttime);
                echo timeAgo($time_ago); ?></span>
            <br/>
            <p>
                <?php echo $row['comment']; ?>
            </p>
        </div>
    </div><!-- end "cmt-cnt" -->

The problem is with the queries in loadmore.php

  • 写回答

1条回答 默认 最新

  • douji5329 2017-03-10 21:00
    关注

    In the loadmore.php the SQL queries don't know from which id_post you want the comments :

    $queryAll =   mysqli_query($con,"SELECT COUNT(*) as num_rows FROM comments   WHERE id < ".$_POST['id']." ORDER BY id DESC");
    

    Modify it with :

    $queryAll =   mysqli_query($con,"SELECT COUNT(*) as num_rows FROM comments   WHERE id < ".$_POST['id']." AND id_post = ".$id_post." ORDER BY id DESC");
    

    And

    $query = mysqli_query($con, "SELECT * FROM comments WHERE id < ".$_POST['id']." ORDER BY id DESC LIMIT ".$showLimit);
    

    Modify it with :

    $query = mysqli_query($con, "SELECT * FROM comments WHERE id < ".$_POST['id']." AND id_post = ".$id_post." ORDER BY id DESC LIMIT ".$showLimit);
    

    By adding the AND part of the WHERE statement, you can add some more conditions.

    Hope it helps.

    EDIT :

    Of course, you'll need to get the $id_post from Ajax or something.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)