1、如果查询只有单一排序,可以两次使用top命令达到筛选目的,例如“select top 10 from (select top 50 * from table where conditions order by column) order by column desc”,复杂查询、排序建议使用临时表操作,“select info #tmptable from table where conditions order by column1,column2
go
select top from #tmptable ...”
2.可能是由于session存放目录的权限被改动或目录被删除

解决方案 »

  1.   

    1、给你一个简单例子,这种方法适合不支持LIMIT的数据库
    <?php
    $query="select * from table order by displayorder";
    $db->query($query);
    $perpage=20;  // 每页多少行
    $page_name="link_list.php?cata=$cata";
    $total_row=$db->num_rows();  //返回所有记录数
    $curpage=intval($curpage);
    if($curpage>$total_row or $curpage<0 or $curpage=="") $curpage=0;
    $offset=$curpage*$perpage; //根据页号得出偏移量
    if($offset) $db->seek($offset);
    $row_count=0;
    while($db->next_record() && $row_count<$perpage)  // 注意这里的条件
    {
      echo "<tr align=center>";
      echo "<td>".$db->f("displayorder")."</td>";
      echo "<td>".$db->f("title")."</td>";
      echo "</tr>";
      $row_count++;
    }// 至于第几页的连接,就你自己写吧,跟其他差不多的。
    ?>2、根据你的出错提示,应在E盘建立一个tmp目录即可。
      

  2.   

    2
    修改php.ini里面的
    session.save_path = /tmp
    把后面的/tmp修改为你的系统里面一个已经存在的目录就可以了
      

  3.   

    ^_^,昨天晚上想到一个简单的方法,
    比如我要提取10-20这一段数据,首先增加一个$flag,在
    while开始的时候把它初始化为1,它随着while的执行而递增,
    当$flag的值取到10-20之间时,则显示相应内容,否则继续
    while,不进行任何动作。代码写起来倒是很简单,但是不知道这样好不好……
      

  4.   

    这样的语句在查询第10000--10010之间的信息就会比较低效,为了取十条数据却缓存了10010条(甚至更多)。最好还是直接从数据库仅返回十条,不认同我的double top 方式吗?呵呵