自己重构的一个分页显示类
最近单位内网要写个网站,发现很多地方用到分页显示,就自己根据自己的需要写了个类,发出来请各位多多指教。本人新手代码质量可能一般,也难免会有bug,不过还是想请各位大侠多多指点,先谢了。 因为我是用的是css布局,这段代码没有采用table布局,各位要使
最近单位内网要写个网站,发现很多地方用到分页显示,就自己根据自己的需要写了个类,发出来请各位多多指教。本人新手代码质量可能一般,也难免会有bug,不过还是想请各位大侠多多指点,先谢了。
因为我是用的是css布局,这段代码没有采用table布局,各位要使用的话,需要自己修改了。
<?php /* 2015 by 秋尽西风 * 数据库操作分页显示类 * 在 wamp 环境下设计 不支持非 mysql 数据库 * 默认采用 UTF8 编码 * */ class DataByPage{ /* 类属性 * $mNumPerPage 默认分页显示每页显示的记录数 * $mNumPage 默认当前页的页码 * $mDataLink 数据库链接 * $mSqlStr 要执行的 SQL 语句 * $mOddCss 输出时奇数行 div 的 css 样式 * $mOddCss 输出时偶数行 div 的 css 样式 * $mHeaderDisplay 设置分页显示是否输出表头 * $mHeaderCss 表头的 CSS 样式 * $mDataConf 数据库的相关设置 * */ private $mNumPerPage = 10; private $mNumPage = 1; private $mDataLink =""; private $mSqlStr; private $mOddCss = "odd"; private $mEvenCss = "even"; private $mHeaderDisplay = true; private $mHeaderCss = "tableheader"; private $mTableName = ""; private $mDataConf = array( "dbHost" => "localhost", "dbLoginName" => "root", "dbPwd" => "", "dbName" => "dbName", "characterSet" => "UTF8" ); /* 构造方法 * 保存数据库信息到数组 $mDataConf * 根据信息创建数据库连接 * $dbName 数据库的名称 * $dbHost 数据库的连接地址 * $dbLoginName 数据库的登录用户名 * $dbPwd 数据库的登录密码 * */ function __construct($dbName,$dbHost="localhost",$dbLoginName="root",$dbPwd=""){ $this->mDataConf["dbHost"] = $dbHost; $this->mDataConf["dbLoginName"] = $dbLoginName; $this->mDataConf["dbPwd"] = $dbPwd; $this->mDataConf["dbName"] = $dbName; $this->mDataLink = mysql_connect($dbHost,$dbLoginName,$dbPwd); if(!$this->mDataLink){die('Could not connect: ' . mysql_error());} } /* 析构方法 * * */ function __destruct(){ mysql_close($this->mDataLink); } /* 手动设置默认分页显示每页显示的记录数 * function SetNumPerPage($numPerPage){ $this->mNumPerPage = $numPerPage; }*/ /* 手动设置要执行的 SQL 语句 * 如果这里手动设置了 SELECT 语句 在调用 PagingDisplay 方法时可以不输入任何参数 * */ function SetMySqlStr($mySqlStr){ $this->mSqlStr = $mySqlStr; } /* function GetNumPerPage(){ return $this->mNumPerPage; } */ /* 生成 SQL SELECT 语句 * $dbTable 要进行查询操作的数据表 必需 * $searchField 要查询的字段 与 $searchKey 同时设置方能生效 * $searchKey 要查询的关键字 与 $searchField 同时设置方能生效 * $sortingField 排序依据的字段 与 $sortRules 同时设置方能生效 * $sortRules 排序规则 ASC/DESC 与 $sortingField 同时设置方能生效 * $numPage 当前需要分页显示的页码 与 $numPerPage 同时设置方能生效 * $numPerPage 分页显示中每页要显示的记录数 与 $numPage 同时设置方能生效 * $tableDisplayField 需要查询/显示的字段 "" 为显示全部字段 * */ private function SetSqlSelectStr($dbTable="",$numPerPage="",$numPage="",$sortingField="",$sortRules="",$tableDisplayField="",$searchField="",$searchKey=""){ //select * from $dbTable where $searchField like %$searchKey% order by $sortingField $sortRules limit ($numPage-1)*$numPerPage,$numPerPage $sql_str = "SELECT "; if($tableDisplayField!=""){ foreach($tableDisplayField as $field){ $sql_str = $sql_str.$field.","; } $sql_str = substr_replace($sql_str," ",-1); $sql_str = $sql_str."FROM"; } else{ $sql_str = "SELECT * FROM"; } //select */$tableDisplayField from if($dbTable=="") {die("please check dbTable");} else {$sql_str = $sql_str." ".$dbTable;} //select */$tableDisplayField from $dbTable if($searchField!="" && $searchKey!="") {$sql_str = $sql_str." WHERE ".$searchField." LIKE %".$searchKey."%";} //select */$tableDisplayField from $dbTable [where $searchField like %$searchKey%] if($sortingField!="" && $sortRules!="") {$sql_str = $sql_str." ORDER BY ".$sortingField." ". $sortRules;} //select */$tableDisplayField from $dbTable where $searchField like %$searchKey% [order by $sortingField $sortRules] if($numPerPage!="" && $numPage!="") {$sql_str = $sql_str." LIMIT ".($numPage-1)*$numPerPage.",".$numPerPage;} ////select */$tableDisplayField from $dbTable where $searchField like %$searchKey% order by $sortingField $sortRules [limit ($numPage-1)*$numPerPage,$numPerPage] $this->mSqlStr = $sql_str; } /* 分页显示查询结果 * $dbTable 要进行查询操作的数据表 如果为空则需要事先手动设置 $mSqlStr:要执行的 SQL 语句 * $searchField 要查询的字段 * $searchKey 要查询的关键字 * $sortingField 排序依据的字段 * $sortRules 排序规则 ASC/DESC * $numPage 当前需要分页显示的页码 * $numPerPage 分页显示中每页要显示的记录数 * $tableDisplayField 需要查询/显示的字段 为一维数组类型 "" 为显示全部字段 * 分页显示的样式使用 CSS 控制 CSS 使用 class 选择器 奇数行的 CSS 样式为:$mOddCss 偶数行的CSS样式为:$mEvenCss 每个字段的 CSS 样式为字段名 * 表头各个字段的 CSS 样式为 字段名 + header * 表头整行 DIV 的 CSS 样式为 tableheader * */ function PagingDisplay($dbTable="",$numPage="",$numPerPage="",$sortingField="",$sortRules="",$tableDisplayField="",$searchField="",$searchKey=""){ if($dbTable!=""){ $this->mTableName = $dbTable; if($numPerPage==""){$numPerPage = $this->mNumPerPage;} else{$this->mNumPerPage = $numPerPage;} if($numPage==""){$numPage = $this->mNumPage;} else{$this->mNumPage = $numPage;} $this->SetSqlSelectStr($dbTable,$numPerPage,$numPage,$sortingField,$sortRules,$tableDisplayField,$searchField,$searchKey); } if($numPerPage!="" && $numPage!=""){ $this->mNumPerPage = $numPerPage; $this->mNumPage = $numPage; } if($this->mSqlStr==""){die("please check mSqlStr");} mysql_select_db($this->mDataConf["dbName"],$this->mDataLink); mysql_query(("SET NAMES '".$this->mDataConf["characterSet"]."'"),$this->mDataLink); echo $this->mSqlStr; $results = mysql_query($this->mSqlStr); $i = 1; while($row=mysql_fetch_assoc($results)){ if($i==1 && $this->mHeaderDisplay){ echo "<div class='".$this->mHeaderCss."'>"; foreach($row as $field=>$value){ echo "<div class='".$field."header'>".$field."</div>"; } echo "</div>"; //mysql_data_seek($results,0); } if($i++%2==1){ echo "<div class='".$this->mOddCss."'>"; } else{ echo "<div class='".$this->mEvenCss."'>"; } foreach($row as $field=>$value){ echo "<div class='".$field."'>".$value."</div>"; } echo "</div>"; } } /* 显示翻页控制 共xxx条记录 首页 上一页 下一页 末页 第x/x页 GO * $actionPage 处理链接的页面 * $numPage 分页现实的当前页码 * $searchField 如果是对搜索结果分页显示 这里填写搜索的字段 * $searchKey 如果是对搜索结果分页显示 这里填写搜索的关键字 **/ function PageingControl($actionPage,$numPage="",$searchField="",$searchKey=""){ mysql_select_db($this->mDataConf["dbName"],$this->mDataLink); mysql_query(("SET NAMES '".$this->mDataConf["characterSet"]."'"),$this->mDataLink); $temp_result = mysql_query("SELECT * FROM ".$this->mTableName,$this->mDataLink); $num_record = mysql_num_rows($temp_result); $num_page_total = ceil($num_record/$this->mNumPerPage); if($num_page_total<1){$num_page_total = 1;} if($numPage==""){$numPage = $this->mNumPage;} if($numPage<1 || $numPage>$num_page_total){$numPage = 1;} if($searchField=="" || $searchKey==""){ echo "共".$num_record."条记录 "; echo "<a href='".$actionPage."?numPage=1'>首页 </a>"; if($numPage>1) {echo "<a href='".$actionPage."?numPage=".($numPage-1)."'>上一页 </a>";} if($numPage<$num_page_total) {echo "<a href='".$actionPage."?numPage=".($numPage+1)."'>下一页 </a>";} echo "<a href='".$actionPage."?numPage=".$num_page_total."'>末页 </a>"; echo "<form action='".$actionPage."' method='get'>第<input name='numPage' type='text' value=".$numPage." />/".$num_page_total."页<input type=submit value='GO' /></form>"; } else{ echo "共".$num_record."条记录 "; echo "<a href='".$actionPage."?numPage=1&searchField=".$searchField."&searchKey=".$searchKey."'>首页 </a>"; if($numPage>1) {echo "<a href='".$actionPage."?numPage=".($numPage-1)."&searchField=".$searchField."&searchKey=".$searchKey."'>上一页 </a>";} if($numPage<$num_page_total) {echo "<a href='".$actionPage."?numPage=".($numPage+1)."&searchField=".$searchField."&searchKey=".$searchKey."'>下一页 </a>";} echo "<a href='".$actionPage."?numPage=".$num_page_total."&searchField=".$searchField."&searchKey=".$searchKey."'>末页 </a>"; echo "<form action='".$actionPage."' method='get'>第<input name='numPage' type='text' value=".$numPage." />/".$num_page_total."页<input name='searchField' type='hidden' value='".$searchField."'/><input name='searchKey' type='hidden' value='".$searchKey."'/><input type=submit value='GO' /></form>"; } } /* function test(){ echo $this->mSqlStr; if($this->mDataLink==""){echo "no";} $results = mysql_query($this->mSqlStr,$this->mDataLink); } */ } //?>
<?php /**/ require 'databypage.class.php'; $ot = new DataByPage("ws"); $ot->PagingDisplay("ws_video",1,10); $ot->PageingControl("this.php"); ?>

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)

Sujets chauds

Sites Web pour apprendre le langage C : 1. Site Web du langage C ; 2. Tutoriel pour les débutants ; 3. Forum du langage C ; 5. Script House 6. Tianji.com ; 51 Réseau d'auto-apprentissage ; 9. Likou ; 10. Programmation C. Introduction détaillée : 1. Site Web chinois en langue C, qui est un site Web dédié à la fourniture de matériel d'apprentissage du langage C pour les débutants. Il a un contenu riche, comprenant une grammaire de base, des pointeurs, des tableaux, des fonctions, des structures et d'autres modules. est un site Web complet d'apprentissage de la programmation et bien plus encore.

Que se passe-t-il lorsque la disposition du bureau est verrouillée ? Lors de l'utilisation de l'ordinateur, nous pouvons parfois rencontrer une situation dans laquelle la disposition du bureau est verrouillée. Ce problème signifie que nous ne pouvons pas ajuster librement la position des icônes du bureau ou modifier l'arrière-plan du bureau. Alors, que se passe-t-il exactement lorsqu'il est indiqué que la disposition du bureau est verrouillée ? 1. Comprendre la disposition du bureau et les fonctions de verrouillage. Tout d’abord, nous devons comprendre les deux concepts de disposition du bureau et de verrouillage du bureau. La disposition du bureau fait référence à la disposition de divers éléments sur le bureau, notamment les raccourcis, les dossiers, les widgets, etc. nous pouvons être libres

De nombreux utilisateurs utilisent la connexion Bureau à distance. De nombreux utilisateurs rencontreront des problèmes mineurs lors de son utilisation, tels que le fait que la barre des tâches de l'autre partie ne s'affiche pas. En fait, il s'agit probablement d'un problème avec les paramètres de l'autre partie. solutions ci-dessous. Comment afficher la barre des tâches de l'autre partie lors d'une connexion Bureau à distance : 1. Tout d'abord, cliquez sur "Paramètres". 2. Ouvrez ensuite « Personnalisation ». 3. Sélectionnez ensuite « Barre des tâches » sur la gauche. 4. Désactivez l'option Masquer la barre des tâches dans l'image.

Vous n'avez pas besoin de saisir souvent le mot de passe WIFI, il est donc normal de l'oublier. Aujourd'hui, je vais vous apprendre la manière la plus simple de trouver le mot de passe de votre propre WIFI. Cela peut être fait en 3 secondes. Pour vérifier le mot de passe WIFI, utilisez WeChat pour le scanner. Le principe de cette méthode est le suivant : il doit y avoir un téléphone mobile pouvant se connecter au WIFI. Bon, commençons le didacticiel : Étape 1. Nous entrons dans le téléphone, descendons du haut du téléphone, faisons apparaître la barre d'état et l'icône WIFI. Étape 2. Appuyez longuement sur l'icône WIFI pour accéder aux paramètres WLAN ; appuyez sur l'icône WIFI. Étape 3. Cliquez sur Connecté. Entrez le nom WIFI de votre maison, cliquez sur Partager le mot de passe et un code QR apparaîtra ; Étape 4 du partage du mot de passe WIFI, nous prenons une capture d'écran et enregistrons ce code QR ; , appuyez longuement sur l'icône WeChat sur le bureau et cliquez sur Scan

Récemment, Samsung Display et Microsoft ont signé un important accord de coopération. Selon l'accord, Samsung Display développera et fournira des centaines de milliers de panneaux OLEDoS pour les visiocasques de réalité mixte (MR) à Microsoft. Microsoft développe un appareil MR pour le contenu multimédia tel que les jeux et les films. Il sera lancé une fois les spécifications OLEDoS finalisées, destiné principalement au domaine commercial, et devrait être livré dès 2026. Technologie OLEDoS (OLED sur silicium) OLEDoS est une nouvelle technologie d'affichage qui dépose des OLED sur un substrat de silicium. Par rapport aux substrats en verre traditionnels, elle est plus fine et comporte des pixels plus élevés. Écran OLEDoS et affichage ordinaire

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

Sur les systèmes Linux, vous pouvez utiliser la commande pwd pour afficher le chemin actuel. La commande pwd est l'abréviation de PrintWorkingDirectory et est utilisée pour afficher le chemin du répertoire de travail actuel. Entrez la commande suivante dans le terminal pour afficher le chemin actuel : pwd Après avoir exécuté cette commande, le terminal affichera le chemin complet du répertoire de travail actuel, tel que : /home/user/Documents. De plus, vous pouvez utiliser d'autres options pour améliorer les fonctionnalités de la commande pwd. Par exemple, l'option -P peut afficher.

Le système Win7 est un excellent système apprécié par la plupart des utilisateurs d'ordinateurs. Cependant, récemment, de nombreux utilisateurs du système Win7 ont signalé que leurs ordinateurs ne pouvaient pas s'éteindre et continuent d'afficher qu'ils s'éteignent ! Aujourd'hui, l'éditeur vous apportera une solution au problème que Win7 ne peut pas arrêter. Jetons un coup d'œil. Solutions au problème selon lequel Windows 7 ne peut pas s'arrêter et continue d'afficher qu'il s'arrête : diverses raisons et solutions : Méthode 1 : 1. Vérifiez d'abord s'il existe des logiciels non fermés. S'il y en a, quittez-les, puis essayez de les fermer. 2. Après avoir cliqué sur la commande d'arrêt, le problème persiste. Si vous ne parvenez pas à arrêter l'ordinateur, cela est probablement dû à l'interférence des processus de l'ordinateur. Cliquez avec le bouton droit de la souris sur la barre des tâches, cliquez sur "Gestionnaire des tâches". " et sélectionnez "Processus". 3. Vous pouvez observer tout ce qui s'exécute sur l'ordinateur pendant le processus.
