Was ist das Prinzip des Pagings?
Daten-Paging erfordert die folgenden Bedingungen:
1. Die Gesamtzahl der am Paging teilnehmenden Elemente [$msg_count], dieser Wert kann durch Datenbankabfrage abgerufen werden
2 . Die Anzahl der auf jeder Seite angezeigten Elemente [$pagesize], dieser Wert wird von Ihnen selbst definiert
3. Die Anzahl der Seiten der aktuellen Seite [$page], dieser Wert wird über gesendet und empfangen Adressleiste;
4. Die Gesamtzahl der Seiten [$pagecount] kann aus den oben genannten Informationen berechnet werden. Hier müssen Sie ceil();
[$pagecount = ceil($) verwenden msg_count/$pagesize);]
5. Die Datenbankabfrage verwendet [limit] in der SQL-Anweisung, um Datenänderungen zu realisieren:
Zum Beispiel:
Wählen Sie * aus dem Tabellennamen aus wobei Bedingungsgrenze $startnum, $pagesize;
Und $startnum = ($page-1)*$pagesize;
Beispiel:
/** * 取得上次的过滤条件 * @param string $param_str 参数字符串,由list函数的参数组成 * @return 如果有,返回array('filter' => $filter, 'sql' => $sql);否则返回false */ function get_filter($param_str = '') { $filterfile = basename(PHP_SELF, '.php');//string basename ( string $path [, string $suffix ] ) 返回路径中的文件名部分如果文件名是以 suffix 结束的,那这一部分也会被去掉。 if ($param_str) { $filterfile .= $param_str; } if (isset($_GET['uselastfilter']) && isset($_COOKIE['ECSCP']['lastfilterfile']) && $_COOKIE['ECSCP']['lastfilterfile'] == sprintf('%X', crc32($filterfile))) { return array( 'filter' => unserialize(urldecode($_COOKIE['ECSCP']['lastfilter'])), 'sql' => base64_decode($_COOKIE['ECSCP']['lastfiltersql']) ); } else { return false; } }
/** * 保存过滤条件 * @param array $filter 过滤条件 * @param string $sql 查询语句 * @param string $param_str 参数字符串,由list函数的参数组成 */ function set_filter($filter, $sql, $param_str = '') { $filterfile = basename(PHP_SELF, '.php'); if ($param_str) { $filterfile .= $param_str; } setcookie('ECSCP[lastfilterfile]', sprintf('%X', crc32($filterfile)), time() + 600); setcookie('ECSCP[lastfilter]', urlencode(serialize($filter)), time() + 600); setcookie('ECSCP[lastfiltersql]', base64_encode($sql), time() + 600); }
/** * 供货商资源管理 * @param bool $is_pagtion * @return array $arr */ function suppliers_resource_manage($is_pagtion=true) { global $db,$ecs; $result = get_filter(); if ($result === false) { $aiax = isset($_GET['is_ajax']) ? $_GET['is_ajax'] : 0; /* 过滤信息 */ $filter['sort_by'] = empty($_REQUEST['sort_by']) ? 'r.resource_id' : trim($_REQUEST['sort_by']); $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']); $filter['resource_id'] = empty($_REQUEST['resource_id']) ? '' : $_REQUEST['resource_id']; $filter['admin_name'] = empty($_REQUEST['admin_name']) ? '' : trim($_REQUEST['admin_name']); $filter['resource_name'] = empty($_REQUEST['resource_name']) ? '' : trim($_REQUEST['resource_name']); $filter['admin_id'] = isset($_REQUEST['admin_id'])?intval($_REQUEST['admin_id']):'-1'; $filter['resource_type'] = empty($_REQUEST['resource_type']) ? '-1' : intval($_REQUEST['resource_type']); $filter['resource_status'] = empty($_REQUEST['resource_status']) ? '-1' : intval($_REQUEST['resource_status']); $filter['resource_rank'] = empty($_REQUEST['resource_rank']) ? '-1' : intval($_REQUEST['resource_rank']); $filter['resource_key'] = empty($_REQUEST['resource_key']) ? '' : trim($_REQUEST['resource_key']); $filter['menuid'] = 7; $where = 'WHERE 1 '; /* 分页大小 */ $filter['page'] = empty($_REQUEST['page']) || (intval($_REQUEST['page']) <= 0) ? 1 : intval($_REQUEST['page']); if (isset($_REQUEST['page_size']) && intval($_REQUEST['page_size']) > 0) { $filter['page_size'] = intval($_REQUEST['page_size']); } elseif (isset($_COOKIE['ECSCP']['page_size']) && intval($_COOKIE['ECSCP']['page_size']) > 0) { $filter['page_size'] = intval($_COOKIE['ECSCP']['page_size']); } else { $filter['page_size'] = 15; } if(!empty($filter['resource_id'])) { $resource_id = $filter['resource_id'] == -1 ? 0 : $filter['resource_id']; $where .= " and r.resource_id='".$resource_id."'"; } if($filter['resource_name']){ $where .= " AND r.resource_name like '%".mysql_like_quote($filter['resource_name'])."%' "; } if($filter['admin_id'] > -1) { $where .= " AND r.admin_id = '".$filter['admin_id']."' "; } if ($filter['resource_type'] > -1) { $where .= " AND r.resource_type = '" . $filter['resource_type'] . "'"; } if ($filter['resource_status'] > -1) { $where .= " AND r.resource_status = '" . $filter['resource_status'] . "'"; } if ($filter['resource_rank'] > -1) { $where .= " AND r.resource_rank = '" . $filter['resource_rank'] . "'"; } if($filter['resource_key']){ $where .= " AND r.remark like '%".mysql_like_quote($filter['resource_key'])."%' "; } /* 记录总数 */ $sql = "SELECT COUNT(r.resource_id) FROM " . $ecs->table('suppliers_resource')." as r LEFT JOIN ".$ecs->table('admin_user') . " as u ON u.user_id = r.admin_id " . $where; $filter['record_count'] = $db->getOne($sql); $filter['page_count'] = $filter['record_count'] > 0 ? ceil($filter['record_count'] / $filter['page_size']) : 1; /* 查询 */ $sql = "SELECT r.resource_id, u.user_name as admin_name, r.resource_name, r.resource_link, r.resource_type, r.resource_status, r.resource_rank, r.remark, r.add_time FROM " . $ecs->table('suppliers_resource') . " as r LEFT JOIN " . $ecs->table('admin_user') . " as u ON u.user_id = r.admin_id " . $where; $sort_by = $filter['sort_by']; $sort_order = $filter['sort_order']; $sql .="GROUP BY r.resource_id ORDER BY " . $sort_by . " " . $sort_order; if($is_pagtion) { $sql .=" LIMIT ".($filter['page'] - 1)*$filter['page_size'].",".$filter['page_size']; } set_filter($filter, $sql); } else { $sql = $result['sql']; $filter = $result['filter']; } $query=$sql; $row = $db->getAll($sql); /* 格式话数据 */ foreach ($row AS $key => $value) { if ($row[$key]['resource_type'] == 1) { $row[$key]['resource_type'] = '中模'; }elseif ($row[$key]['resource_type'] == 2) { $row[$key]['resource_type'] = '泳装'; }elseif ($row[$key]['resource_type'] == 3) { $row[$key]['resource_type'] = '阿里'; }elseif ($row[$key]['resource_type'] == 2) { $row[$key]['resource_type'] = '17网'; } if ($row[$key]['resource_status'] == 1) { $row[$key]['resource_status'] = '已审核'; }elseif ($row[$key]['resource_status'] == 2) { $row[$key]['resource_status'] = '已弃用'; } if ($row[$key]['resource_rank'] == 1) { $row[$key]['resource_rank'] = 'A'; }elseif ($row[$key]['resource_rank'] == 2) { $row[$key]['resource_rank'] = 'B'; }elseif ($row[$key]['resource_rank'] == 3) { $row[$key]['resource_rank'] = 'C'; } if(strpos($row[$key]['resource_link'], 'http://') === false) { if (strpos($row[$key]['resource_link'], 'https://') === false) { $row[$key]['resource_link'] = substr_replace($row[$key]['resource_link'], 'http://', 0, 0); } } } $arr = array('result' => $row, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count'],'query'=>$query); return $arr; }
Verwandte Empfehlungen:
Beispiel für das Paging-Prinzip in PHP
Detaillierte Erläuterung des PHP-Paging-Prinzips
Das obige ist der detaillierte Inhalt vonWas ist das Prinzip des Pagings?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

ccsvchst.exe ist eine allgemeine Prozessdatei, die Teil der Symantec Endpoint Protection (SEP)-Software ist, und SEP ist eine Endpoint Protection-Lösung, die vom bekannten Netzwerksicherheitsunternehmen Symantec entwickelt wurde. Als Teil der Software ist ccsvchst.exe für die Verwaltung und Überwachung SEP-bezogener Prozesse verantwortlich. Werfen wir zunächst einen Blick auf SymantecEndpointProtection(

Analyse der Rolle und des Prinzips von nohup In Unix und Unix-ähnlichen Betriebssystemen ist nohup ein häufig verwendeter Befehl, mit dem Befehle im Hintergrund ausgeführt werden können. Selbst wenn der Benutzer die aktuelle Sitzung verlässt oder das Terminalfenster schließt, kann der Befehl ausgeführt werden werden weiterhin ausgeführt. In diesem Artikel werden wir die Funktion und das Prinzip des Nohup-Befehls im Detail analysieren. 1. Die Rolle von Nohup: Befehle im Hintergrund ausführen: Mit dem Befehl Nohup können wir Befehle mit langer Laufzeit weiterhin im Hintergrund ausführen lassen, ohne dass dies dadurch beeinträchtigt wird, dass der Benutzer die Terminalsitzung verlässt. Dies muss ausgeführt werden

Dual-Core-Browser ist eine Browsersoftware, die zwei verschiedene Browserkerne integriert. Der Kernel ist der Kernteil des Browsers und für die Darstellung von Webinhalten sowie die Ausführung von Webskripten und anderen Funktionen verantwortlich. Herkömmliche Browser verwenden im Allgemeinen nur einen einzigen Kernel, z. B. IE-Browser mit Trident-Kernel, Chrome-Browser mit WebKit/Blink-Kernel, Firefox-Browser mit Gecko-Kernel usw. Der Dual-Core-Browser integriert zwei verschiedene Kerne in einem Browser, und Benutzer können je nach Bedarf frei zwischen ihnen wechseln. Das Aufkommen von Dual-Core-Browsern

Prinzipielle Analyse und praktische Erkundung des Struts-Frameworks. Als häufig verwendetes MVC-Framework in der JavaWeb-Entwicklung verfügt das Struts-Framework über gute Entwurfsmuster und Skalierbarkeit und wird häufig in der Anwendungsentwicklung auf Unternehmensebene verwendet. In diesem Artikel werden die Prinzipien des Struts-Frameworks analysiert und anhand tatsächlicher Codebeispiele untersucht, um den Lesern zu helfen, das Framework besser zu verstehen und anzuwenden. 1. Analyse der Prinzipien des Struts-Frameworks 1. MVC-Architektur Das Struts-Framework basiert auf MVC (Model-View-Con

MyBatis ist ein beliebtes Java-Persistenzschicht-Framework, das in verschiedenen Java-Projekten häufig verwendet wird. Unter diesen ist das Einfügen von Stapeln ein häufiger Vorgang, der die Leistung von Datenbankvorgängen effektiv verbessern kann. In diesem Artikel wird das Implementierungsprinzip von Batch Insert in MyBatis eingehend untersucht und anhand spezifischer Codebeispiele detailliert analysiert. Batch-Einfügung in MyBatis In MyBatis werden Batch-Einfügungsvorgänge normalerweise mit dynamischem SQL implementiert. Durch Konstruieren eines S, das mehrere eingefügte Werte enthält

Das RPM-Tool (RedHatPackageManager) in Linux-Systemen ist ein leistungsstarkes Tool zum Installieren, Aktualisieren, Deinstallieren und Verwalten von Systemsoftwarepaketen. Es ist ein häufig verwendetes Tool zur Verwaltung von Softwarepaketen in RedHatLinux-Systemen und wird auch von vielen anderen Linux-Distributionen verwendet. Die Rolle des RPM-Tools ist sehr wichtig. Es ermöglicht Systemadministratoren und Benutzern die einfache Verwaltung von Softwarepaketen auf dem System. Über RPM können Benutzer problemlos neue Softwarepakete installieren und vorhandene Software aktualisieren

MyBatis ist ein hervorragendes Persistenzschicht-Framework, das Datenbankoperationen basierend auf XML und Anmerkungen unterstützt. Es ist einfach und benutzerfreundlich und bietet außerdem einen umfangreichen Plug-In-Mechanismus. Unter diesen ist das Paging-Plugin eines der am häufigsten verwendeten Plug-Ins. Dieser Artikel befasst sich mit den Prinzipien des MyBatis-Paging-Plug-Ins und veranschaulicht es anhand konkreter Codebeispiele. 1. Paging-Plug-In-Prinzip MyBatis selbst bietet keine native Paging-Funktion, Sie können jedoch Plug-Ins verwenden, um Paging-Abfragen zu implementieren. Das Prinzip des Paging-Plug-Ins besteht hauptsächlich darin, MyBatis abzufangen

Der Befehl chage im Linux-System ist ein Befehl zum Ändern des Kennwortablaufdatums eines Benutzerkontos. Er kann auch zum Ändern des längsten und kürzesten nutzbaren Datums des Kontos verwendet werden. Dieser Befehl spielt eine sehr wichtige Rolle bei der Verwaltung der Benutzerkontosicherheit. Er kann die Nutzungsdauer von Benutzerkennwörtern effektiv steuern und die Systemsicherheit verbessern. So verwenden Sie den Befehl chage: Die grundlegende Syntax des Befehls chage lautet: chage [Option] Benutzername. Um beispielsweise das Ablaufdatum des Kennworts des Benutzers „testuser“ zu ändern, können Sie den folgenden Befehl verwenden
