php中一个可查询全部表的“通用”查询分页类
php中一个可查询所有表的“通用”查询分页类
一个可查询所有表的“通用”查询分页类?
最近突发奇想,希望写出一个可以针对所有表的查询分页类。因为在实际的开发中,恐怕查询并将结果集分页显示是用得最多的代码,而表的结构是多样的,我想尽可能地提高代码的重用率和维护性。?
以下是我写的,请各位加以指点,测试,看能否进行更好的改进和更多的支持。?
目前还只支持单一的表,不支持联合查询。但未来可以会考虑如何支持。?
代码:?<?php /**************************************************************** 这个类主要是解决针对很多表的简单数据查询,还在完善中。希望广大网友多提意见和建议。 我的目的是开发出一个几乎可以适用于所有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([email protected]_fetch_array($sult)){ $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()是将查询结果集存在一个二维数组里,本例中没有用到。 */ ?>?
"; } //分页 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.=""; $echo_content.="".$found[1]."
"; //显示用户指定的字段,此处需仔细看 for($i=2;$i
上页&"; }else{ $echo_content.=" "; }else{ $echo_content.="&下页"; } $echo_content.="上页&"; } //显示页码 for($i=1;$ic_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.="&下页

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Im heutigen Zeitalter der rasanten technologischen Entwicklung schießen Programmiersprachen wie Pilze nach einem Regenschauer aus dem Boden. Eine der Sprachen, die viel Aufmerksamkeit erregt hat, ist die Go-Sprache, die von vielen Entwicklern wegen ihrer Einfachheit, Effizienz, Parallelitätssicherheit und anderen Funktionen geliebt wird. Die Go-Sprache ist für ihr starkes Ökosystem mit vielen hervorragenden Open-Source-Projekten bekannt. In diesem Artikel werden fünf ausgewählte Open-Source-Projekte für die Go-Sprache vorgestellt und der Leser soll die Welt der Open-Source-Projekte für die Go-Sprache erkunden. KubernetesKubernetes ist eine Open-Source-Container-Orchestrierungs-Engine für die Automatisierung

„Grundlagen der Go-Sprachentwicklung: 5 beliebte Framework-Empfehlungen“ Als schnelle und effiziente Programmiersprache wird die Go-Sprache von immer mehr Entwicklern bevorzugt. Um die Entwicklungseffizienz zu verbessern und die Codestruktur zu optimieren, entscheiden sich viele Entwickler für die Verwendung von Frameworks, um Anwendungen schnell zu erstellen. In der Welt der Go-Sprache stehen viele hervorragende Frameworks zur Auswahl. In diesem Artikel werden fünf beliebte Go-Sprach-Frameworks vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Frameworks besser zu verstehen und zu verwenden. 1.GinGin ist ein leichtes Web-Framework mit hoher Geschwindigkeit

Teil 1: Erste Schritte zur Fehlerbehebung Überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen Lösungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt möglicherweise nicht an Ihrem Gerät; die Server von Apple sind möglicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgemäß funktioniert. Wenn es ein Problem gibt, können Sie nur warten, bis Apple es behebt. Überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem „Verbindung zum AppStore nicht möglich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Mit der Entwicklung des Internets und der Weiterentwicklung der Informationstechnologie ist das Zeitalter von Big Data angebrochen, und auch Bereiche wie Datenanalyse und maschinelles Lernen sind weit verbreitet. In diesen Bereichen ist die Aufgabenplanung ein unvermeidliches Problem. Für die Verbesserung der Effizienz ist es von entscheidender Bedeutung, eine effiziente Aufgabenplanung zu erreichen. In diesem Artikel stellen wir vor, wie Sie das Web-Framework Echo-Framework von Golang verwenden, um eine verteilte Aufgabenplanung zu implementieren. 1. Einführung in das Echo-Framework Echo ist ein leistungsstarkes, skalierbares und leichtes GoWeb-Framework. Es basiert auf HTTP

Laravel ist ein beliebtes PHP-Framework, das hoch skalierbar und effizient ist. Es bietet viele leistungsstarke Tools und Bibliotheken, die es Entwicklern ermöglichen, schnell hochwertige Webanwendungen zu erstellen. Darunter sind LaravelEcho und Pusher zwei sehr wichtige Tools, mit denen die WebSockets-Kommunikation einfach implementiert werden kann. In diesem Artikel wird detailliert beschrieben, wie diese beiden Tools in Laravel-Anwendungen verwendet werden. Was sind WebSockets? WebSockets
