簡體   English   中英

訪問MySQL數據庫中的下一個和上一個記錄

[英]Accessing next and previous records in MySQL database

假設我有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}'由srno desc LIMIT 1 OFFSET 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 var中獲得user id ,所以我將它們排除在外。 但是,代碼應該可以正常工作,一旦您理解了代碼,就可以使用它來重寫自己的代碼。

如果每頁顯示一條記錄,則可以簡單地使用分頁。 您可以從http://www.tutorialspoint.com/php/mysql_paging_php.htm獲取分頁示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM