ホームページ バックエンド開発 PHPチュートリアル PHP は、smarty と ADODB を使用してページ内のデータを読み取ります_PHP チュートリアル

PHP は、smarty と ADODB を使用してページ内のデータを読み取ります_PHP チュートリアル

Jul 13, 2016 pm 05:48 PM
base define path php smarty ページネーション そして 成し遂げる データ 試してみる 読む

定義('BASE_PATH',$_SERVER['DOCUMENT_ROOT']); 定義('SMARTY_PATH','smartTestSmarty\'); BASE_PATH.SMARTY_PATH.'Smarty.class.php' が必要です
/*$dir2 のパスがパフォーマンス ページに表示され、次の文字列が同じであるため、smarty がテンプレート パスを見つけることができません*/
//$dir2 = "../Smarty/テンプレート/"; クラス SmartyProject は Smarty を拡張します{

関数 SmartyProject(){
/*このparent::__construct();を追加する必要があります。追加しない場合、Smartyは構築されず、切り捨てなどが使用できません。
* これでは意味がわからないようですが、実際には
* これにより、truncate が使用できない問題が確実に解決されます*/
親::__construct(); $this->template_dir = BASE_PATH.SMARTY_PATH.'/templates/'; $this->compile_dir = BASE_PATH.SMARTY_PATH.'/templates_c/'; $this->config_dir = BASE_PATH.SMARTY_PATH.'/configs/'; $this->cache_dir = BASE_PATH.SMARTY_PATH.'/cache/'; }
}

クラス ConnDB{
変数 $dbtype
変数 $ホスト
var $user
var $pwd; 変数 $データベース名
var $デバッグ
var $conn; 関数 ConnDB($dbtype, $host, $user, $pwd, $dbname, $debug=FALSE){// コンストラクター
$this->dbtype=$dbtype; $this->host=$host; $this->user=$user; $this->pwd=$pwd; $this->dbname=$dbname; $this->debug=$debug; }
関数 GetConnId(){
require BASE_PATH.'/smartTest/adodb5/adodb.inc.php';//adodbのメインファイルを参照します
If($this->dbtype == 'mysql'){
$this->conn = NewADOConnection('mysql'); $this->conn->Connect($this->host, $this->user, $this->pwd, $this->dbname); }else if($this->dbtype == 'mssql'){
$this->conn = NewADOConnection('mssql'); $this->conn->Connect($this->host, $this->user, $this->pwd, $this->dbname); }else if($this->dbtype == 'access'){
$this->conn = NewADOConnection('access'); $this->conn->Connect("Driver={Microsoft Access Driver(*.mdb)};Dbq=".$this->dbname.";Uid=".$this->user." ;Pwd=".$this->pwd.";");
}
$this->conn->Execute("set names utf-8"); If($this->dbtype == 'mysql')
$this->conn->debug = $this->debug; $this->conn を返す
}
関数 CloseConnId(){
$this->conn->Disconnect(); }
}

クラスAdminDB{
関数 ExecSQL($sqlstr, $conn){
$sqltype = strto lower(substr(trim($sqlstr), 0,6));// SQL ステートメントの最初の 6 文字を削除します
$rs = $conn->Execute($sqlstr); If($sqltype == 'select'){
$array = $rs->GetRows(); If(count($array)==0 || $rs == false)
falseを返します。 それ以外 $array を返します。 }else if($sqltype == 'update'||$sqltype == 'insert'||$sqltype == 'delete'){
//これは結果セットを返さないか、空のセットを返します
もし($rs)
true を返します
それ以外 falseを返します。 }
}
}
クラス SepPage{
変数 $rs; var $pagesize
var $nowpage
var $配列
var $conn; var $sqlstr; 関数 ShowData($sqlstr,$conn,$pagesize,$nowpage){
If(!isset($nowpage)||$nowpage==""){
$this->nowpage = 1; }その他{
$this->nowpage = $nowpage; }
$this->pagesize = $pagesize; $this->conn = $conn; $this->sqlstr = $sqlstr; //クエリ文を実行する
$this->rs = $this->conn->PageExecute($this->sqlstr,$this->pagesize,$this->nowpage);//ADODO クラスでこのメソッドを呼び出します
@$this->array = $this->rs->GetRows(); If(count($this->array)==0||$this->rs == false)
false を返します。 それ以外
$ this-> 配列を返します。 }
関数 ShowPage($contentname, $utits, $anotherserchstr, $anotherserchstrs, $class){
$allrs = $this->conn->Execute($this->sqlstr); //クエリ文を実行します
$record = count($allrs->GetRows());//統計レコードの総数
$pagecount = ceil($record/$this->pagesize);//ページ数を計算します
@$str.="Total ".$contentname." ".$record." ".$utits." 各ページには ".$this->pagesize." が表示されます。 ".$utits." ".$this->rs->AbsolutePage()." ページ数/合計 ".$pagecount."; $str.=" "; If(!$this->rs->AtFirstPage())
$str.="            $anotherserchstrs."class=".$class.">首页"; 
        その他
            $str.="首页"; 
        $str.=" "; 
        if (!$this->rs->AtFirstPage())
            $str.="上一页"; 
        その他
            $str.="上一页"; 
        $str.=" "; 
        if(!$this->rs->AtLastPage())
            $str.="次の一页";   
        その他
            $str.="次の一页"; 
        $str.=" "; 
        if(!$this->rs->AtLastPage())
            $str.="尾页"; 
        その他
            $str.="尾页"; 
        if(count($this->array)== 0||$this->rs==false)
            戻る ""; 
        その他
            $str を返します。 
    }
}
上記のコード定義には、データ レベルの接続、データ レベルの操作、実行、データ レベルの保存、およびスマート タイプのサブ タイプが含まれますが、このサブ タイプも特別な機能は実現しません。将その命名は
SmartyDAO.php またはそれに伴う任意の名前を取得することもできますが、もちろん、ここでの説明では、これらの経路については、大家が自分自身に関連する目標を設定していることに注意してください。
'smartyDao.php' が必要です。 
//データー库类实例
$conobj = new ConnDB("mysql", "localhost", "root", "brave", "bank"); 
$conn = $conobj->GetConnId(); 
//データベース库操作类对オブジェクト
$admindb = 新しいAdminDB(); 
//Smartyモジュール配置类对象
$smarty = 新しい SmartyProject(); 
 
$seppage = new SepPage();//实例化分页类

このファイルは上記のファイルのクラスをインスタンス化したもので、smartyDaoImpl.php という名前を付けることもできます。関数は非常に単純です。 次に行うことは、ページング コードをテストするためのテスト ケースを作成することです。もちろん、このテストには 2 つのファイルも含まれています。1 つはコントローラーで、もう 1 つはビューです。
コントローラーのコードは次のとおりです。
include_once 'conn/smartyDaoImpl.php'; $arr_page = $seppage->ShowData("select * from localinfo", $conn, 5, $_GET['page']);// ページングクエリを実行
if(!$arr_page)
$smarty->assign('page',"F"); 他 {
$smarty->assign('ページ','T'); $smarty->assign('showpage',$seppage->ShowPage("record", "a", "", "", "a1"));//割り当てページング テンプレート
$smarty->assign('arr_page',$arr_page);// クエリ レコードをテンプレートにコピーします
}
$smarty->display('view/fenyeShow.html');//データを表示するためのテンプレートを指定します
名前を付けて、smarty_ADODB_fenye.php と名付けましょう。ご覧のとおり、最初はこれを使用しました:

include_once 'conn/smartyDaoImpl.php'; ここで、前の2つのファイルはconnフォルダーに配置され、テストケースはconnと同じレベルのディレクトリに書かれていることを説明してください
次に、ビューファイルを間違った場所に置かないでください。最初に書いたクラスにそのようなステートメントがあることがわかります

$this->template_dir = BASE_PATH.SMARTY_PATH.'/templates/';
指定されたビュー ファイルの絶対パスは次のとおりです。
$smarty->display('view/fenyeShow.html');//データを表示するためのテンプレートを指定します
この文、

$smarty->display('view/fenyeShow.html');//データを表示するためのテンプレートを指定します
それで、私たちは
するつもりです
BASE_PATH.SMARTY_PATH.'/templates/
パスの下に view という名前のフォルダーを作成し、その後に fenyeShow.html という名前のファイルを作成します。もちろん、好きな名前を選択できますが、プログラムで指定されている一貫性を確保する必要があります
。 ビューテンプレートの内容は次のとおりです:


ここにタイトルを挿入

{セクション名=id ループ=$arr_page}
{$arr_page[id].Id} {$arr_page[id].temporal} {$arr_page[id].illumination} {$arr_page[id].moisture} {$arr_page[id].times|truncate:5:"..."} {/セクション}

{$showpage}
これで完了です。ブラウザでsmarty_ADODB_fenye.phpファイルを見つけてサーバーを起動するだけで、ページング効果が表示されます。
その過程で、いくつかの問題に遭遇しました。 1 つは、smarty のサブクラスがインスタンス化されるときに、この問題が非常に奇妙であることです。その親クラス Smarty はインスタンス化されないため、truncate が使用できなくなります。解決策は、当然のことながら、サブクラスで親クラスのコンストラクターを呼び出すことです。

0+0+0+...=1より抜粋

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478454.html技術記事 ?phpdefine(BASE_PATH,$_SERVER[DOCUMENT_ROOT]);define(SMARTY_PATH,smartTestSmarty\); /*$dir2 のパフォーマンス ページへのパスは次のとおりです...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles