我自己只能这样实现
<?php
$link = mysql_connect('localhost', 'testuser', 'password');
mysql_select_db('testdb');
//取得起始的ID
$query = 'select max(id) from pixview';
$result = mysql_query($query);
$line = mysql_fetch_row($result);
$maxid = $line[0];
$startid = $maxid - 5;
//查询
$query = "select * from pixview order by id limit $startid,5";
$result = mysql_query($query);
while ($line = mysql_fetch_row($result)) {
echo "$line[1], $line[2], $line[3]\n";
}
?>虽然效果达到了,但是总觉得要执行两次查询有点那什么了
另外还想学习一下数组,呵呵

解决方案 »

  1.   

    两个思路;第一:你可以将'select * from table order by id desc limit 5' 中的desc做为一个变量,默认是desc,显示后在页面点连接传参数进SQL语句asc或desc来决定是升还是降第二:用JS来控制输出页面元素的升降排序
      

  2.   

    <?php
    $link = mysql_connect('localhost', 'testuser', 'password');
    mysql_select_db('testdb');
    $query = 'select * from table order by id desc limit 5';
    $result = mysql_query($query);
    $newLine = array();
    while ($line = mysql_fetch_row($result)) {
      $newLine[] = $line;
    }
    $newLine = array_reverse($newLine);
    print_r($newLine);
    ?>
      

  3.   

    楼上的$newLine[] = $line;可行么?
    我测试不行么!
      

  4.   

    while ($line = mysql_fetch_row($result)) 
    --> 
    while($line = mysql_fetch_array($result,MYSQL_ASSOC))
      

  5.   

    array_reverse() 
    $input  = array ("php", 4.0, array ("green", "red"));
    $result = array_reverse ($input);
    $result_keyed = array_reverse ($input, TRUE);
     这将使 $result 和 $result_keyed 具有相同的单元,但是注意键名的区别。$result 和 $result_keyed 的打印输出显示分别为: Array
    (
        [0] => Array
            (
                [0] => green
                [1] => red
            )    [1] => 4
        [2] => php
    )
    Array
    (
        [2] => Array
            (
                [0] => green
                [1] => red
            )    [1] => 4
        [0] => php
    )
     
      

  6.   

    我是个菜菜。
    向楼主提出一些疑问。
    $query = 'select max(id) from pixview';//要得到最大的ID?
    $result = mysql_query($query);
    $line = mysql_fetch_row($result);
    $maxid = $line[0];
    $startid = $maxid - 5;//最大的ID-5
    $query = "select count(*) from pixview"//应该是count吧?
    还有,我用了foolbirdflyfirst(湖水清澈) 的方法,测试结果是正确的。
      

  7.   

    可以这样改!就是把他存到一个临时表就OK 了!又很快!
    代码如下:
    <?php
    $link = mysql_connect('localhost', 'testuser', 'password');
    mysql_select_db('testdb');
    $query = 'select * from (select * from table order by id desc limit 5) as tmp order by id asc ';
    $result = mysql_query($query);
    while ($line = mysql_fetch_row($result)) {
    echo "$line[1], $line[2], $line[3]\n";
    }
    ?>
    不知道这样可不可以满足你的要求?
      

  8.   

    多谢各位在下已经用array_reverse方法解决了
    ldq210() 兄的SQL也不错结贴了