select * from news where id<$id order by id limit 0,1
select * from news where id>$id order by id  desc limit 0,1 这种方法我已经试过了,缺点就是没有办法判断第一篇和最后一篇 最好有详细的代码~

解决方案 »

  1.   

    可以的,你先count一下数据,得到数据的总数,就能计算出第一篇和最后一篇
      

  2.   


    最大的ID和最小的ID我已经得出来了,不知道怎么判断哦
      

  3.   

    select count(*) from news where id<$id order by id limit 0,1
    这样就能先得到行数,然后你再看limit的数值,一比较就ok啦
      

  4.   

    得到最大id和最小id,然后用where id = $id 这样能不能搞定
      

  5.   

    这个是我的代码   <?
        $sql = "select * from arts where id='$_GET[newsid]'";
        $res = mysql_query($sql,$conn);
        $row = mysql_fetch_array($res);
        ?>
        <div class="list_wen"><?=$row[contents]?></div>
        <div class="list_num a333">
        <?
        $sql_min = "select id from arts where arts_type_id=$newsmenu order by id limit 0,1";
        $res_min = mysql_query($sql_min,$conn);
        $row_min = mysql_fetch_array($res_min);
        $min_news_id =$row_min[0] ;
        
        $sql_max = "select id from arts where arts_type_id=$newsmenu order by id desc limit 0,1";
        $res_max = mysql_query($sql_max,$conn);
        $row_max = mysql_fetch_array($res_max);
        $max_news_id =$row_max[0] ;
           
        $sqlup="select * from arts where id<$_GET[newsid] and arts_type_id=$newsmenu limit 0,1";
        $resup = mysql_query($sqlup,$conn);
        $rowup = mysql_fetch_array($resup);
        if($_GET[newsid]>$min_news_id)
        {
        ?>
        <a href="newsdetail.php?newsid=<?=$rowup[id]?>&newsmenu=<?=$rowup[arts_type_id]?>">上一篇</a>
        <?
        }
        else 
        {echo "已经第一篇";}
        ?>
            <?
        $sqldown="select * from arts where id>$_GET[newsid] and arts_type_id=$newsmenu limit 0,1";
        $resdown = mysql_query($sqldown,$conn);
        $rowdown = mysql_fetch_array($resdown);
            if($_GET[newsid]<$max_news_id)
        {
        ?>
        <a href="newsdetail.php?newsid=<?=$rowdown[id]?>&newsmenu=<?=$rowdown[arts_type_id]?>">下一篇</a>
    <?
        }
        else 
        {
         echo "已经是最最后一篇";
        }
    ?>
      

  6.   

    比如你点的是第二页,每页显示10条记录,参数传2
    那么你首先
    select count(*) from news where id<$id一下
    加入你得到的记录数是171条
    ceil(171/10)=18
    总共是18页,2小于18不是最后一页select * from news where id<$id order by id limit 10,20
    这样就能得到第二页的数据
    如果参数是18,和总页数相等就用
    select * from news where id<$id order by id limit 170,171
    这就是最后一页的数据
      

  7.   

    select max(id) from news where id<$id  上一篇 如果查询没有结果,那说明是第一篇
    select min(id) from news where id>$id  下一篇 如果查询没有结果,那说明是最后一篇
      

  8.   

    你这代码可真够乱的!!
    if(!isset($_GET['pageid'])){
        $pageid = 1;
    } else {
        $pageid = $_GET['pageid'];
    }
    $query = "select count(*) as sum from arts";
      $res1 = mysql_query($query ,$conn);
      $row1 = mysql_fetch_array($res1 );
      $count = $row1['sum'];
    $sql = "select * from arts order by id limit ".($pageid-1)." 1";
      $res = mysql_query($sql,$conn);
      $row = mysql_fetch_array($res);
      ?>
      <div class="list_wen"><?=$row[contents]?></div><div class="list_num a333">
    <?if($pageid>1) {
      echo "<a href='newsdetail.php?pageid=".($pageid-1)."'>上一篇</a>";
    } else {
      echo "已经第一篇";
    }if($pageid< $count) {
       echo "<a href='newsdetail.php?pageid=".($pageid+1)."'>下一篇</a>";
    } else {
      echo "已经最后一篇";
    }
      

  9.   

    mysql_num_rows 等于 0,就是到头了