Quel est le principe de la pagination ?
La pagination des données nécessite les conditions suivantes :
1. Le nombre total d'éléments participant à la pagination [$msg_count], cette valeur peut être obtenue via une requête de base de données
2 ; . Le nombre d'éléments affichés sur chaque page [$pagesize], cette valeur est définie par vous-même
3. Le nombre de pages de la page actuelle [$page], cette valeur est transmise et reçue via le ; barre d'adresse ;
4. Le nombre total de pages [$pagecount] peut être calculé à partir des informations ci-dessus. Ici, vous devez utiliser ceil();
[$pagecount = ceil($). msg_count/$pagesize);]
5. La requête de base de données utilise [limite] dans l'instruction SQL pour réaliser des modifications de données :
Par exemple :
sélectionnez * dans le nom de la table où limite de condition $startnum, $pagesize;
Et $startnum = ($page-1)*$pagesize;
Exemple :
/** * 取得上次的过滤条件 * @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; }
Recommandations associées :
Exemples de principes de pagination en php
Explication détaillée des principes de pagination en php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

ccsvchst.exe est un fichier de processus commun qui fait partie du logiciel Symantec Endpoint Protection (SEP), et SEP est une solution de protection des points finaux développée par la célèbre société de sécurité réseau Symantec. Dans le cadre du logiciel, ccsvchst.exe est responsable de la gestion et de la surveillance des processus liés à SEP. Tout d’abord, jetons un coup d’œil à SymantecEndpointProtection(

Analyse du rôle et du principe de nohup Dans les systèmes d'exploitation Unix et de type Unix, nohup est une commande couramment utilisée pour exécuter des commandes en arrière-plan. Même si l'utilisateur quitte la session en cours ou ferme la fenêtre du terminal, la commande peut. continuent toujours à être exécutés. Dans cet article, nous analyserons en détail la fonction et le principe de la commande nohup. 1. Le rôle de nohup : Exécuter des commandes en arrière-plan : Grâce à la commande nohup, nous pouvons laisser les commandes de longue durée continuer à s'exécuter en arrière-plan sans être affectées par la sortie de l'utilisateur de la session du terminal. Cela doit être exécuté

Le navigateur Dual-Core est un logiciel de navigation qui intègre deux cœurs de navigateur différents. Le noyau est la partie centrale du navigateur, responsable du rendu du contenu Web et de l'exécution des scripts Web et d'autres fonctions. Les navigateurs traditionnels n'utilisent généralement qu'un seul noyau, comme le navigateur IE utilisant le noyau Trident, le navigateur Chrome utilisant le noyau WebKit/Blink, le navigateur Firefox utilisant le noyau Gecko, etc. Le navigateur dual-core intègre deux cœurs différents dans un seul navigateur, et les utilisateurs peuvent librement basculer entre eux selon leurs besoins. L'émergence des navigateurs dual-core

Analyse des principes et exploration pratique du framework Struts. En tant que framework MVC couramment utilisé dans le développement JavaWeb, le framework Struts a de bons modèles de conception et une bonne évolutivité et est largement utilisé dans le développement d'applications au niveau de l'entreprise. Cet article analysera les principes du framework Struts et l'explorera avec des exemples de code réels pour aider les lecteurs à mieux comprendre et appliquer le framework. 1. Analyse des principes du framework Struts 1. Architecture MVC Le framework Struts est basé sur MVC (Model-View-Con

MyBatis est un framework de couche de persistance Java populaire qui est largement utilisé dans divers projets Java. Parmi elles, l'insertion par lots est une opération courante qui peut améliorer efficacement les performances des opérations de base de données. Cet article explorera en profondeur le principe de mise en œuvre de l'insertion par lots dans MyBatis et l'analysera en détail avec des exemples de code spécifiques. Insertion par lots dans MyBatis Dans MyBatis, les opérations d'insertion par lots sont généralement implémentées à l'aide de SQL dynamique. En construisant un S contenant plusieurs valeurs insérées

L'outil RPM (RedHatPackageManager) dans les systèmes Linux est un outil puissant pour installer, mettre à niveau, désinstaller et gérer les packages logiciels système. Il s'agit d'un outil de gestion de progiciels couramment utilisé dans les systèmes RedHatLinux et est également utilisé par de nombreuses autres distributions Linux. Le rôle de l'outil RPM est très important. Il permet aux administrateurs système et aux utilisateurs de gérer facilement les progiciels sur le système. Grâce à RPM, les utilisateurs peuvent facilement installer de nouveaux progiciels et mettre à niveau les logiciels existants.

MyBatis est un excellent framework de couche de persistance. Il prend en charge les opérations de base de données basées sur XML et les annotations. Il est simple et facile à utiliser. Il fournit également un mécanisme de plug-in riche. Parmi eux, le plug-in de pagination est l'un des plug-ins les plus fréquemment utilisés. Cet article approfondira les principes du plug-in de pagination MyBatis et l'illustrera avec des exemples de code spécifiques. 1. Principe du plug-in de pagination MyBatis lui-même ne fournit pas de fonction de pagination native, mais vous pouvez utiliser des plug-ins pour implémenter des requêtes de pagination. Le principe du plug-in de pagination est principalement d'intercepter MyBatis

La commande chage dans le système Linux est une commande utilisée pour modifier la date d'expiration du mot de passe d'un compte utilisateur. Elle peut également être utilisée pour modifier la date d'utilisation la plus longue et la plus courte du compte. Cette commande joue un rôle très important dans la gestion de la sécurité des comptes utilisateur. Elle peut contrôler efficacement la période d'utilisation des mots de passe utilisateur et améliorer la sécurité du système. Comment utiliser la commande chage : La syntaxe de base de la commande chage est : chage [option] nom d'utilisateur Par exemple, pour modifier la date d'expiration du mot de passe de l'utilisateur "testuser", vous pouvez utiliser la commande suivante.
