Heim  >  Artikel  >  Datenbank  >  PHP implementiert Paging-Anzeigecode

PHP implementiert Paging-Anzeigecode

怪我咯
怪我咯Original
2017-07-11 16:10:045593Durchsuche

Die sogenannte Paging-Anzeige bedeutet, dass die Ergebnismenge in der Datenbank zur Anzeige künstlich in Abschnitte unterteilt wird:

Wie viele pro Seitendatensätze($PageSize)?

Auf welcher Seite ($CurrentPageID) befindet es sich gerade?

Solange Sie mir jetzt einen anderen Ergebnissatz geben, kann ich ein bestimmtes Ergebnis anzeigen.
Was andere Parameter betrifft, wie zum Beispiel: Vorherige Seite ($PReviousPageID) , Nächste Seite ($NextPageID) , Gesamtzahl der Seiten ($numPages ) usw. können auf Basis von Vorkenntnissen erworben werden.

Nehmen Sie MySQL-Datenbank als Beispiel. Wenn Sie einen bestimmten Inhalt aus der Tabelle abfangen möchten, können Sie die SQL-Anweisung verwenden: select * from table limit offset, rows. Schauen Sie sich den folgenden Satz von SQL-Anweisungen an und versuchen Sie, die Regeln zu finden.

Die ersten 10 Datensätze: wählen Sie * aus der Tabellengrenze 0,10

Der 11. bis 20. Datensatz: wählen * ab Tabellenlimit 10,10

Datensätze 21 bis 30: wählen Sie * aus Tabellenlimit 20,10

……

Dieser Satz von SQL-Anweisungen ist eigentlich die SQL-Anweisung zum Abrufen von Daten von jeder Seite der Tabelle, wenn $PageSize=10. Wir können eine solche Vorlage zusammenfassen:

select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize

Verwenden Sie diese Vorlage, um den entsprechenden Wert zu ersetzen und vergleichen Sie es mit den oben genannten SQL-Anweisungen, um festzustellen, ob dies der Fall ist. Nach der Lösung des wichtigsten Problems, wie man die Daten erhält, müssen nur noch die Parameter übergeben, die entsprechende SQL-Anweisung erstellt und dann mit PHP die Daten aus der Datenbank abgerufen und angezeigt werden. Im Folgenden werde ich es mit spezifischem Code erklären.
Einfache Code-Implementierung
Bitte lesen Sie den folgenden Code im Detail, debuggen Sie ihn und führen Sie ihn selbst aus. Am besten ändern Sie ihn einmal und fügen Sie Ihre eigenen Funktionen hinzu, z Suche usw.

// 建立数据库连接 
$link = mysql_connect("localhost", "mysql_user", "mysql_passWord")  
   or die("Could not connect: " . mysql_error());  
// 获取当前页数 
if( isset($_GET['page']) ){ 
  $page = intval( $_GET['page'] ); 
} 
else{ 
  $page = 1; 
}  
// 每页数量 
$PageSize = 10;  
// 获取总数据量 
$sql = "select count(*) as amount from table"; 
$result = mysql_query($sql); 
$row = mysql_fetch_row($result); 
$amount = $row['amount'];  
// 记算总共有多少页 
if( $amount ){ 
  if( $amount < $page_size ){ $page_count = 1; }        //如果总数据量小于$PageSize,那么只有一页 
  if( $amount % $page_size ){                 //取总数据量除以每页数的余数 
    $page_count = (int)($amount / $page_size) + 1;      //如果有余数,则页数等于总数据量除以每页数的结果取整再加一 
  }else{ 
    $page_count = $amount / $page_size;           //如果没有余数,则页数等于总数据量除以每页数的结果 
  } 
} 
else{ 
  $page_count = 0; 
} 
// 翻页链接 
$page_string = &#39;&#39;; 
if( $page == 1 ){ 
  $page_string .= &#39;第一页|上一页|&#39;; 
} 
else{ 
  $page_string .= &#39;第一页|.($page-1).&#39;>上一页|&#39;; 
}  
if( ($page == $page_count) || ($page_count == 0) ){ 
  $page_string .= &#39;下一页|尾页&#39;; 
} 
else{ 
  $page_string .= &#39;.($page+1).&#39;>下一页|.$page_count.&#39;>尾页&#39;; 
} 
// 获取数据,以二维数组格式返回结果 
if( $amount ){ 
  $sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size"; 
  $result = mysql_query($sql); 
  while ( $row = mysql_fetch_row($result) ){ 
    $rowset[] = $row; 
  } 
}else{ 
  $rowset = array(); 
} 
// 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果 
?>

Das obige ist der detaillierte Inhalt vonPHP implementiert Paging-Anzeigecode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn