不同页面上的不同记录

时间:2013-11-06 10:14:11

标签: php mysql

鉴于我的PHP代码每页获得1条记录。但是,即使我在网址中传递了不同的操作值,我也会得到相同的信息?为什么会这样 ?

 <?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条。

2 个答案:

答案 0 :(得分:1)

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

您的网址应该类似于page.php?record=12。然后查询需要查找引用的记录:

<强> PHP

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

显然你也需要逃避变量。

您的nextprevious链接将包含下一个和上一个记录的相关ID(如果可用),从而消除了使用案例的需要,因为所有内容都将由“默认”VIEW案例。

答案 1 :(得分: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;