0

给出的是我的 php 代码,每页获取 1 条记录。但是,即使我在 url 中传递不同的操作值,我也会得到相同的信息?为什么呢 ?

 <?php

    if(!isset($_GET['action']))
         $_GET['action'] = 'view';
    switch($_GET['action']){

        case 'prev':
            $q = "SELECT * FROM table2 WHERE id='aamir' ORDER BY id DESC " ;
        echo "prev";
            break;

        case 'next':
            $q = "SELECT * FROM table2 WHERE id='aamir' ORDER BY id ASC " ;
           echo "next"; 
     break;

        case 'view':
            $q = "SELECT * FROM table2 WHERE id='aamir'"; echo "view";
            break;

        default:
            throw new \Exception('Illegal action value');

    }
      $result1=mysql_query($q,$con);
     if (!($result1) )
     {
        die('Error: ' . mysql_error($con));
     }
     else
     {
        $values1= mysql_fetch_array($result1);
     }
    echo $values1['srno'];
    mysql_close($con); ?>

例如 action=prev 必须显示第 11 条记录,action=next 必须显示第 13 条记录。假设当前记录为 12。

4

2 回答 2

1

您需要在查看页面请求中包含“当前记录 ID”。

您的 URL 应该类似于page.php?record=12. 那么查询需要寻找被引用的记录:

PHP

$q = "SELECT * FROM table2 WHERE id='aamir' AND record_id='".$_GET['record']."'";

显然,您也需要转义变量。

然后,您的nextprevious链接将包含下一条和上一条记录的相关 ID(如果可用),无需使用案例,因为所有内容都将由“默认”VIEW 案例处理。

于 2013-11-06T10:30:36.183 回答
0

您可以为每个查询添加限制语法,例如:

case 'prev':
        $q = "SELECT * FROM table2 WHERE id='aamir' ORDER BY id DESC LIMIT currentpage-1, currentpage, " ;
    echo "prev";
        break;

    case 'next':
        $q = "SELECT * FROM table2 WHERE id='aamir' ORDER BY id ASC  LIMIT currentpage, currentpage+1 " ;
       echo "next"; 
 break;

    case 'view':
        $q = "SELECT * FROM table2 WHERE id='aamir' LIMIT currentpage, currentpage ""; echo "view";
        break;
于 2013-11-06T10:21:21.650 回答