一个可查询所有表的“通用”查询分页类
一个可查询所有表的“通用”查询分页类
最近突发奇想,希望写出一个可以针对所有表的查询分页类。因为在实际的开发中,恐怕查询并将结果集分页显示是用得最多的代码,而表的结构是多样的,我想尽可能地提高代码的重用率和维护性。
以下是我写的,请各位加以指点,测试,看能否进行更好的改进和更多的支持。
目前还只支持单一的表,不支持联合查询。但未来可以会考虑如何支持。
代码:
/****************************************************************
这个类主要是解决针对很多表的简单数据查询,还在完善中。希望广大网友多提意见和建议。
我的目的是开发出一个几乎可以适用于所有mysql表的查询并将结果集分页的类。
可以自动识别查询中要显示的字段值。
在此,特别声明,要感谢chinaunix的朋友,特别是PHP版的网友们长期以来给我的帮助。
特别要提的是NightKids,一直以来,他都给了我无私的帮助,甚至是他的源代码。
这个类可以被任何人自由引用,使用,修改。但请保留这段文字。
使用这个类造成的一切损失,都与作者tonera无关。
我还在考虑,对于一些复杂的联合查询,可以派生一个类,重新构造sql实现。
这个类没有考虑更多的显示风格,你可以自己构造。
*****************************************************************/
class browser{
var $c_table; //要查询的表名
var $c_rows; //要显示的行数
var $c_lation; //查询的条件
var $c_order; //排序的条件
var $c_result; //查询的数据连接句柄
var $c_query; //最终构造的查询
var $c_found; //结果集
var $c_error; //错误收集器
var $c_offset; //分页显示的偏移量
var $total; //结果集的总数
//连接数据库
function connect(){
include '../connect.inc.php';
if ($connection==false){
$this->c_error.="没有连接上数据库。
";
exit;
}
$this->c_result=$connection;
}
//构造函数,初始化变量
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;
}
}
//计算总页数
function TatolPage(){
$sult=mysql_query("select count(*) as 'total_rows' from $this->c_table",$this->c_result);
if ($sult==false) {
$this->c_error.="计算结果集总数目的查询失败,请检查。
";
exit;
}
$tempvar=mysql_fetch_array($sult);
$this->total=$tempvar[0];
}
//查询得到结果集,存入数组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;
}
}
//查询数据,并将结果分页存入一个变量
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]); //字段值(数组)
//显示数据到一个表
$echo_content.="
while($found=@mysql_fetch_array($sult)){
$echo_content.="";
//显示用户指定的字段,此处需仔细看
for($i=2;$i
}
$echo_content.="";
}
//分页
if ($this->c_rows==0){
$this->c_error.="每页显示的数目不能为0";
exit;
}
$total_page=ceil($this->total/$this->c_rows);
$pre_page=$_GET[offset]-$this->c_rows;
//下一页
$nex_page=$_GET[offset]+$this->c_rows;
//显示上一页
if ($pre_page>=0){
$echo_content.="";
}else{
$echo_content.="&下页";
}
$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("表名",每页显示的数目,"sql","查询条件","排序条件");
$gggg=new browser("news",5,"select auto_id,news_title from news","","order by newstime desc");
$temp=$gggg->ShowTable();
echo $temp;
//$gggg->GetFound()是将查询结果集存在一个二维数组里,本例中没有用到。
*/
?>

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

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];

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

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

Tajuk: Bagaimana untuk menggunakan Oracle untuk bertanya sama ada jadual dikunci? Dalam pangkalan data Oracle, kunci jadual bermaksud bahawa apabila transaksi menjalankan operasi tulis pada jadual, transaksi lain akan disekat apabila mereka ingin melakukan operasi tulis pada jadual atau membuat perubahan struktur pada jadual (seperti menambah lajur, memadam baris , dan lain-lain.). Dalam proses pembangunan sebenar, kita sering perlu bertanya sama ada jadual dikunci untuk menyelesaikan masalah dan menangani masalah berkaitan dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan pernyataan Oracle untuk bertanya sama ada jadual dikunci dan memberikan contoh kod tertentu. Untuk memeriksa sama ada meja dikunci, kita

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

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

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
