自己重构的一个分页显示类
最近单位内网要写个网站,发现很多地方用到分页显示,就自己根据自己的需要写了个类,发出来请各位多多指教。本人新手代码质量可能一般,也难免会有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"); ?>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Laman web untuk mempelajari bahasa C: 1. Laman Web Bahasa C; 3. Forum Bahasa C 6. Tianji.com; 51 Rangkaian belajar kendiri; 9. Likou; Pengenalan terperinci: 1. Laman web bahasa C bahasa Cina, yang merupakan laman web khusus untuk menyediakan bahan pembelajaran bahasa C untuk pemula Ia kaya dengan kandungan, termasuk tatabahasa asas, petunjuk, tatasusunan, fungsi, struktur dan modul lain; Ini adalah laman web pembelajaran pengaturcaraan yang komprehensif dan banyak lagi.

Apakah yang berlaku apabila susun atur desktop dikunci apabila menggunakan komputer, kadangkala kita mungkin menghadapi situasi di mana reka letak desktop dikunci. Masalah ini bermakna kita tidak boleh bebas melaraskan kedudukan ikon desktop atau menukar latar belakang desktop. Jadi, apa sebenarnya yang berlaku apabila ia mengatakan bahawa susun atur desktop dikunci? 1. Fahami reka letak desktop dan fungsi penguncian Pertama, kita perlu memahami dua konsep susun atur desktop dan penguncian desktop. Reka letak desktop merujuk kepada susunan pelbagai elemen pada desktop, termasuk pintasan, folder, widget, dsb. kita boleh bebas

Terdapat ramai pengguna yang menggunakan Sambungan Desktop Jauh Ramai pengguna akan menghadapi beberapa masalah kecil apabila menggunakannya, seperti bar tugas pihak lain yang tidak dipaparkan penyelesaian di bawah. Cara untuk memaparkan bar tugas pihak lain semasa Sambungan Desktop Jauh: 1. Pertama, klik "Tetapan". 2. Kemudian buka "Peribadikan". 3. Kemudian pilih "Taskbar" di sebelah kiri 4. Matikan pilihan Hide Taskbar dalam gambar.

Anda tidak perlu memasukkan kata laluan WIFI dengan kerap, jadi adalah perkara biasa untuk melupakannya Hari ini saya akan mengajar anda cara paling mudah untuk mencari kata laluan WIFI anda sendiri. Ia boleh dilakukan dalam masa 3 saat. Untuk menyemak kata laluan WIFI, gunakan WeChat untuk mengimbasnya Premis kaedah ini ialah: mesti ada telefon bimbit yang boleh menyambung ke WIFI. Okay, mari mulakan tutorial: Langkah 1. Kami masukkan telefon, tarik ke bawah dari bahagian atas telefon, bawa ke atas bar status, dan ikon WIFI Langkah 2. Tekan lama ikon WIFI untuk memasukkan tetapan WLAN tekan ikon WIFI Langkah 3. Klik Bersambung Masukkan nama WIFI rumah anda, klik Kongsi Kata Laluan, dan kod QR akan muncul di Langkah 4 untuk berkongsi kata laluan WIFI, kami mengambil tangkapan skrin dan menyimpan kod QR ini; , tekan lama ikon WeChat pada desktop dan klik Imbas

MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik yang menyokong operasi pangkalan data berdasarkan XML dan anotasi Ia mudah dan mudah digunakan, dan juga menyediakan mekanisme pemalam yang kaya. Antaranya, pemalam paging adalah salah satu pemalam yang lebih kerap digunakan. Artikel ini akan menyelidiki prinsip pemalam paging MyBatis dan menggambarkannya dengan contoh kod khusus. 1. Prinsip pemalam paging MyBatis sendiri tidak menyediakan fungsi paging asli, tetapi anda boleh menggunakan pemalam untuk melaksanakan pertanyaan paging. Prinsip pemalam paging adalah terutamanya untuk memintas MyBatis

Baru-baru ini, Samsung Display dan Microsoft menandatangani perjanjian kerjasama yang penting. Menurut perjanjian itu, Samsung Display akan membangunkan dan membekalkan ratusan ribu panel OLEDoS untuk peranti yang dipasang di kepala realiti campuran (MR) kepada Microsoft sedang membangunkan peranti MR untuk kandungan multimedia seperti permainan dan filem ini Ia akan dilancarkan selepas spesifikasi OLEDoS ditentukan, terutamanya dalam bidang komersial, dan dijangka akan dihantar seawal 2026. Teknologi OLEDoS (OLED on Silicon) OLEDoS ialah teknologi paparan baharu yang mendepositkan OLED pada substrat silikon Berbanding dengan substrat kaca tradisional, ia lebih nipis dan mempunyai piksel yang lebih tinggi. Paparan OLEDoS dan paparan biasa

Dalam sistem Linux, anda boleh menggunakan perintah pwd untuk memaparkan laluan semasa. Perintah pwd ialah singkatan dari PrintWorkingDirectory dan digunakan untuk memaparkan laluan direktori kerja semasa. Masukkan arahan berikut dalam terminal untuk memaparkan laluan semasa: pwd Selepas melaksanakan arahan ini, terminal akan memaparkan laluan penuh direktori kerja semasa, seperti: /home/user/Documents. Selain itu, anda juga boleh menggunakan beberapa pilihan lain untuk meningkatkan kefungsian perintah pwd Contohnya, pilihan -P boleh dipaparkan

Terdapat dua cara paling biasa untuk menomborkan tatasusunan PHP: menggunakan fungsi array_slice(): hitung bilangan elemen untuk dilangkau, dan kemudian ekstrak julat elemen yang ditentukan. Gunakan iterator terbina dalam: laksanakan antara muka Iterator, dan kaedah rewind(), key(), current(), next(), dan valid() digunakan untuk melintasi elemen dalam julat yang ditentukan.
