一個(gè)可查詢所有表的“通用”查詢分頁類_PHP教程
Jul 21, 2016 pm 04:09 PM
一個(gè)可查詢所有表的“通用”查詢分頁類
最近突發(fā)奇想,希望寫出一個(gè)可以針對(duì)所有表的查詢分頁類。因?yàn)樵趯?shí)際的開發(fā)中,恐怕查詢并將結(jié)果集分頁顯示是用得最多的代碼,而表的結(jié)構(gòu)是多樣的,我想盡可能地提高代碼的重用率和維護(hù)性。
以下是我寫的,請(qǐng)各位加以指點(diǎn),測(cè)試,看能否進(jìn)行更好的改進(jìn)和更多的支持。
目前還只支持單一的表,不支持聯(lián)合查詢。但未來可以會(huì)考慮如何支持。
代碼:
/****************************************************************
這個(gè)類主要是解決針對(duì)很多表的簡(jiǎn)單數(shù)據(jù)查詢,還在完善中。希望廣大網(wǎng)友多提意見和建議。
我的目的是開發(fā)出一個(gè)幾乎可以適用于所有mysql表的查詢并將結(jié)果集分頁的類。
可以自動(dòng)識(shí)別查詢中要顯示的字段值。
在此,特別聲明,要感謝chinaunix的朋友,特別是PHP版的網(wǎng)友們長(zhǎng)期以來給我的幫助。
特別要提的是NightKids,一直以來,他都給了我無私的幫助,甚至是他的源代碼。
這個(gè)類可以被任何人自由引用,使用,修改。但請(qǐng)保留這段文字。
使用這個(gè)類造成的一切損失,都與作者tonera無關(guān)。
我還在考慮,對(duì)于一些復(fù)雜的聯(lián)合查詢,可以派生一個(gè)類,重新構(gòu)造sql實(shí)現(xiàn)。
這個(gè)類沒有考慮更多的顯示風(fēng)格,你可以自己構(gòu)造。
*****************************************************************/
class browser{
? ?var $c_table;? ?//要查詢的表名
? ?var $c_rows;? ?//要顯示的行數(shù)
? ?var $c_lation;? ?//查詢的條件
? ?var $c_order;? ?//排序的條件
? ?var $c_result;? ?//查詢的數(shù)據(jù)連接句柄
? ?var $c_query;? ?//最終構(gòu)造的查詢
? ?var $c_found;? ?//結(jié)果集
? ?var $c_error;? ?//錯(cuò)誤收集器
? ?var $c_offset;? ?//分頁顯示的偏移量
? ?var $total;? ?? ?//結(jié)果集的總數(shù)
? ?//連接數(shù)據(jù)庫
? ?function connect(){
? ?? ?include '../connect.inc.php';
? ?? ?if ($connection==false){
? ?? ?? ?$this->c_error.="沒有連接上數(shù)據(jù)庫。
";
? ?? ?? ?exit;
? ?? ?}
? ?? ?$this->c_result=$connection;
? ?}
? ?//構(gòu)造函數(shù),初始化變量
? ?function browser($tablename,$row,$sql,$lation,$orderby){
? ?? ?$this->c_table=$tablename;
? ?? ?$this->c_rows=$row;
? ?? ?if(empty($this->c_offset)){
? ?? ?? ?$this->c_offset=0;
? ?? ?}
? ?? ?if (empty($tablename) or empty($row) or empty($sql)){
? ?? ?? ?$this->c_error="沒有查詢的表或沒有批定顯示多少行或沒有查詢語句
";
? ?? ?}
? ?? ?$this->c_query=$sql;
? ?? ?if (!empty($lation)){
? ?? ?? ?$this->c_query.=" ".$lation;
? ?? ?}
? ?? ?if (!empty($orderby)){
? ?? ?? ?$this->c_query.=" ".$orderby;
? ?? ?}
? ?}
? ?//計(jì)算總頁數(shù)
? ?function TatolPage(){
? ?? ?$sult=mysql_query("select count(*) as 'total_rows' from $this->c_table",$this->c_result);
? ?? ?if ($sult==false) {
? ?? ?? ?$this->c_error.="計(jì)算結(jié)果集總數(shù)目的查詢失敗,請(qǐng)檢查。
";
? ?? ?? ?exit;
? ?? ?}
? ?? ?$tempvar=mysql_fetch_array($sult);
? ?? ?$this->total=$tempvar[0];
? ?}
? ?//查詢得到結(jié)果集,存入數(shù)組c_found[][]中
? ?function GetFound(){
? ?? ?$sult=mysql_query($this->c_query,$this->c_result) or die(mysql_error());
? ?? ?while ($found=mysql_fetch_array($sult)){
? ?? ?? ?$this->c_found[]=$found;
? ?? ?}
? ?}
? ?//查詢數(shù)據(jù),并將結(jié)果分頁存入一個(gè)變量
? ?function ShowTable(){
? ?? ?$this->connect();
? ?? ?$this->TatolPage();
? ?? ?if (empty($_GET[offset])){
? ?? ?? ?$_GET[offset]=0;
? ?? ?}
? ?? ?$this->c_query.=" limit ".$_GET[offset].", ".$this->c_rows;
? ?? ?$sult=mysql_query($this->c_query,$this->c_result) or die(mysql_error());
? ?? ?//解析query,得到要顯示出來的字段值
? ?? ?$tempvar=explode(" ",$this->c_query);
? ?? ?$fields=explode(",",$tempvar[1]);? ?//字段值(數(shù)組)
? ?? ?//顯示數(shù)據(jù)到一個(gè)表
? ?? ?$echo_content.="
"; ? ?? ?? ?$echo_content.="".$found[1]." | "; ".$found[$i]." | ";||||||||
上頁&"; ? ?? ?}else{ ? ?? ?? ?$echo_content.=" | |||||||||
上頁&"; ? ?? ?} ? ?? ?//顯示頁碼 ? ?? ?for($i=1;$i? ?? ?? ?if ($_GET[offset]/$this->c_rows==($i-1)){ ? ?? ?? ?? ?$echo_content.="&第".$i."頁&"; ? ?? ?? ?}else{ ? ?? ?? ?? ?$echo_content.="&c_rows.">".$i."&"; ? ?? ?? ?} ? ?? ?} ? ?? ?//顯示下一頁 ? ?? ?if ($nex_page!=0 and ($_GET[offset]+$this->c_rows)total){ ? ?? ?? ?$echo_content.="&下頁 |
? ?? ?return $echo_content;
? ?}
}
/*例子
//browser("表名",每頁顯示的數(shù)目,"sql","查詢條件","排序條件");
$gggg=new browser("news",5,"select auto_id,news_title from news","","order by newstime desc");
$temp=$gggg->ShowTable();
echo $temp;
//$gggg->GetFound()是將查詢結(jié)果集存在一個(gè)二維數(shù)組里,本例中沒有用到。
*/
?>

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Muat turun versi terbaharu aplikasi tempahan tiket 12306 Ia adalah perisian pembelian tiket perjalanan yang semua orang sangat berpuas hati dengannya -pengesahan nama untuk membeli tiket dalam talian Semua pengguna Anda boleh membeli tiket perjalanan dan tiket penerbangan dengan mudah dan menikmati diskaun yang berbeza. Anda juga boleh mula menempah tempahan terlebih dahulu untuk merebut tiket Anda boleh menempah hotel atau pemindahan kereta khas Dengan itu, anda boleh pergi ke mana-mana yang anda mahu pergi dan membeli tiket dengan satu klik lebih mudah dan memudahkan semua orang lebih selesa. Kini editor memperincikannya dalam talian Menyediakan 12306 pengguna cara untuk melihat rekod pembelian tiket sejarah. 1. Buka Keretapi 12306, klik Saya di sudut kanan bawah, dan klik Pesanan Saya 2. Klik Dibayar pada halaman pesanan. 3. Pada halaman berbayar

MySQL dan PL/SQL ialah dua sistem pengurusan pangkalan data yang berbeza, mewakili ciri pangkalan data hubungan dan bahasa prosedur masing-masing. Artikel ini akan membandingkan persamaan dan perbezaan antara MySQL dan PL/SQL, dengan contoh kod khusus untuk digambarkan. MySQL ialah sistem pengurusan pangkalan data hubungan popular yang menggunakan Bahasa Pertanyaan Berstruktur (SQL) untuk mengurus dan mengendalikan pangkalan data. PL/SQL ialah bahasa prosedur yang unik untuk pangkalan data Oracle dan digunakan untuk menulis objek pangkalan data seperti prosedur tersimpan, pencetus dan fungsi. sama

Bagaimana untuk menyemak kelayakan akademik saya di Xuexin.com? Anda boleh menyemak kelayakan akademik anda di Xuexin.com Ramai pengguna tidak tahu cara menyemak kelayakan akademik mereka di Xuexin.com Seterusnya, editor membawakan tutorial grafik kepada pengguna tentang cara menyemak kelayakan akademik mereka di Xuexin.com pengguna datang dan lihat! Tutorial penggunaan Xuexin.com: Cara menyemak kelayakan akademik anda di Xuexin.com 1. Pintu masuk Xuexin.com: https://www.chsi.com.cn/ 2. Pertanyaan laman web: Langkah 1: Klik pada alamat Xuexin.com di atas untuk masuk ke laman utama Klik [Education Query]; Langkah 4: Pada halaman log masuk Masukkan maklumat dan klik [Log Masuk];

Jika anda ingin menyemak tarikh pengaktifan menggunakan telefon bimbit Apple, cara terbaik ialah menyemaknya melalui nombor siri dalam telefon bimbit Anda juga boleh menyemaknya dengan melawati laman web rasmi Apple, menyambungkannya ke komputer, dan memuat turun ketiga -perisian pihak untuk menyemaknya. Bagaimana untuk menyemak tarikh pengaktifan telefon bimbit Apple Jawapan: Pertanyaan nombor siri, pertanyaan laman web rasmi Apple, pertanyaan komputer, pertanyaan perisian pihak ketiga 1. Cara terbaik untuk pengguna ialah mengetahui nombor siri telefon bimbit mereka nombor siri dengan membuka Tetapan, Umum, Mengenai Mesin Ini. 2. Menggunakan nombor siri, anda bukan sahaja boleh mengetahui tarikh pengaktifan telefon bimbit anda, tetapi juga menyemak versi telefon bimbit, asal telefon bimbit, tarikh kilang telefon bimbit, dll. 3. Pengguna melawati tapak web rasmi Apple untuk mencari sokongan teknikal, mencari bahagian perkhidmatan dan pembaikan di bahagian bawah halaman, dan menyemak maklumat pengaktifan iPhone di sana. 4. Pengguna

Forum adalah salah satu bentuk laman web yang paling biasa di Internet Ia menyediakan pengguna dengan platform untuk berkongsi maklumat, bertukar dan berbincang. Discuz ialah program forum yang biasa digunakan, dan saya percaya ramai juruweb sudah sangat mengenalinya. Semasa pembangunan dan pengurusan forum Discuz, selalunya perlu untuk menanyakan data dalam pangkalan data untuk analisis atau pemprosesan. Dalam artikel ini, kami akan berkongsi beberapa petua untuk menanyakan lokasi pangkalan data Discuz dan memberikan contoh kod khusus. Pertama, kita perlu memahami struktur pangkalan data Discuz

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.

Bagaimana untuk menyemak harga terkini Tongshen Coin? Token ialah mata wang digital yang boleh digunakan untuk membeli item, perkhidmatan dan aset dalam permainan. Ia tidak berpusat, bermakna ia tidak dikawal oleh kerajaan atau institusi kewangan. Transaksi Tongshen Coin dijalankan pada blockchain, yang merupakan lejar teragih yang merekodkan maklumat semua transaksi Tongshen Coin. Untuk menyemak harga terkini Token, anda boleh menggunakan langkah berikut: Pilih tapak web atau apl semakan harga yang boleh dipercayai. Beberapa tapak web pertanyaan harga yang biasa digunakan termasuk: CoinMarketCap: https://coinmarketcap.com/Coindesk: https://www.coindesk.com/ Binance: https://www.bin

Apakah situasi dalam pangkalan data Oracle yang boleh menyebabkan jadual dikunci? Dalam pangkalan data Oracle, adalah situasi biasa bahawa jadual dikunci, biasanya disebabkan oleh pengguna yang melakukan operasi data. Situasi kunci meja biasa termasuk penguncian peringkat baris, penguncian peringkat transaksi dan operasi DDL. Situasi ini akan diperkenalkan secara terperinci di bawah dan contoh kod yang sepadan akan diberikan. Penguncian peringkat baris: Apabila pengguna mengemas kini jadual dalam transaksi, pangkalan data mengunci baris data yang sepadan untuk menghalang transaksi lain daripada mengubah suai data pada masa yang sama. Jika transaksi tidak
