简体   繁体   English

访问MySQL数据库中的下一个和上一个记录

[英]Accessing next and previous records in MySQL database

Say I have 3 records of same users with IDs 2,4,7,9 and I want to be able to go from one to another by navigation via next/previous links. 假设我有3条ID为2,4,7,9的相同用户的记录,并且我希望能够通过下一个/上一个链接进行导航,从而从一个记录转到另一个记录。 The problem is, I don't know how to fetch 1 record per page with link redirecting to same page. 问题是,我不知道如何通过链接重定向到同一页来获取每页1条记录。

So when I have record with ID 4, If I click previous it must redirect me to same page with record of having ID 2 and If I click next it should take me to 7.Please help with redirection and displaying one record per page. 因此,当我拥有ID为4的记录时,如果单击上一个,则必须将我重定向到具有ID为2的记录的同一页面;如果单击下一步,则应将我带到7。请帮助重定向并每页显示一个记录。

So far I have done: 到目前为止,我已经完成了:

<?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);
  ?>

Do I need to change query to : 我需要将查询更改为:

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

I'd use something like this for prev/next links... 我会将类似的内容用于上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);

I didn't understand what srno is, and how did you get your user id in $user var, so I left them out. 我不明白什么是srno ,以及如何在$user var中获得user id ,所以我将它们排除在外。 Code should be functional nontheless, once you understand it, you can use it to rewrite your own. 但是,代码应该可以正常工作,一旦您理解了代码,就可以使用它来重写自己的代码。

if you displaying one record per page you may simply use pagination. 如果每页显示一条记录,则可以简单地使用分页。 You can get a pagination example from http://www.tutorialspoint.com/php/mysql_paging_php.htm 您可以从http://www.tutorialspoint.com/php/mysql_paging_php.htm获取分页示例

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM