0

假设我有 3 条 ID 为 2、4、7、9 的相同用户的记录,我希望能够通过下一个/上一个链接导航从一个到另一个。问题是,我不知道如何通过链接重定向到同一页面来获取每页 1 条记录。

因此,当我有 ID 4 的记录时,如果我单击上一个,它必须将我重定向到具有 ID 2 记录的同一页面,如果我单击下一个,它应该带我到 7。请帮助重定向并每页显示一条记录。

到目前为止,我已经完成了:

<?php 
   $query1 = "SELECT * FROM table2 WHERE id='{$user}' order by srno desc " ;
   $result1=mysql_query($query1,$con);
   if (!($result1) )
   {
      die('Error: ' . mysql_error($con));
   }
   else
   {
      $values1= mysql_fetch_array($result1);
   }
    mysql_close($con);
  ?>

我是否需要将查询更改为:

$query1 = "SELECT * FROM table2 WHERE id='{$user}' order by srno desc LIMIT 1 OFFSET 1" ;

4

2 回答 2

1

我会使用这样的prev/next链接...

html

<a href="?action=prev&id=<?php echo $values['id'] ?>">prev</a>
<a href="?action=next&id=<?php echo $values['id'] ?>">next</a>

php

<?php
    if(!is_numeric($_GET['id'] || $_GET['id'] < 1)
         throw new \Exception('Illegal id value');
    if(!isset($_GET['action']))
         $_GET['action'] = 'view';
    switch($_GET['action']){

        case 'prev':
            $q = "SELECT * FROM table2 WHERE id<'{$_GET['id']}' ORDER BY id DESC LIMIT 1" ;
            break;

        case 'next':
            $q = "SELECT * FROM table2 WHERE id>'{$_GET['id']}' ORDER BY id ASC LIMIT 1" ;
            break;

        case 'view':
            $q = "SELECT * FROM table2 WHERE id='{$_GET['id']}'";
            break;

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

    }



   $result1=mysql_query($query1,$con);
   if (!($result1) )
   {
      die('Error: ' . mysql_error($con));
   }
   else
   {
      $values1= mysql_fetch_array($result1);
   }
   mysql_close($con);

我不明白是什么srno,以及你是如何得到你的user idin $uservar 的,所以我把它们排除在外。代码应该是功能性的,一旦你理解了它,你就可以用它来重写你自己的。

于 2013-11-06T05:04:49.110 回答
0

如果您每页显示一条记录,则可以简单地使用分页。您可以从http://www.tutorialspoint.com/php/mysql_paging_php.htm获取分页示例

于 2013-11-06T04:47:22.857 回答