ホームページ >バックエンド開発 >PHPチュートリアル >PHP アクセス MySql データベース中級 Smarty テクノロジー_PHP チュートリアル

PHP アクセス MySql データベース中級 Smarty テクノロジー_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:47:52914ブラウズ

この記事を読む前に、「PHP を使用した MySql データベースへのアクセス - 初級」を読むことをお勧めします。

Smarty は PHP 言語で書かれたテンプレート エンジンで、現在業界で最も有名な PHP テンプレート エンジンの 1 つです。ロジック コードと外部コンテンツを分離し、元々 HTML コードと混在していた PHP コードを分離します。これにより、PHP プログラマーは Web サイトのフロントエンド プログラマーと適切な分業を実現できます。PHP プログラマーによるプログラムの論理コンテンツの変更は、フロントエンド スタッフのページ デザインには影響せず、フロントエンド スタッフによるページの再変更には影響しません。ページ スタイルはプログラムのパフォーマンスに影響を与えないため、複数人によるコラボレーション プロジェクトの管理と保守が特に容易になります。 Smarty には多くの利点があるため、国内の大手企業は Web サイトをプログラミングする際にこのプログラミング方法を採用しています。 Smarty のマニュアルには、http://www.smarty.net/docs/en/index.tpl からアクセスできます。

以下は、Smarty プログラムの小さな例です。機能的には最初の章と同じで、MySql テスト データベースの t_student からデータを読み取り、それを表示します。プログラムは、smarty2.php、smarty2.html、smarty2_head.php、smarty2.js、smarty2.css の 5 つのファイルに分かれています。さらに、プログラムは Smarty および JQuery ライブラリ ファイルを参照する必要があります。

1. Smarty2_head.php ファイル

// 投稿者 MoreWindows( http://www.BkJia.com )


定義(DB_HOST, 'ローカルホスト'); 定義(DB_USER, 'ルート'); 定義(DB_PASS, '111111'); 定義(DB_DATABASENAME, 'テスト'); 定義(DB_TABLENAME, 't_student');
$dbcolarray = array('id', 'name', 'age'); ?>
// By MoreWindows( http://www.BkJia.com )

定義(DB_HOST, 'ローカルホスト');
定義(DB_USER, 'ルート');
定義(DB_PASS, '111111');
定義(DB_DATABASENAME, 'テスト');
定義(DB_TABLENAME, 't_student');

$dbcolarray = array('id', 'name', 'age');
?>
2. Smarty2.php ファイル

// 投稿者 MoreWindows( http://www.BkJia.com )



header("Content-Type: text/html; charset=utf-8"); require('../../smart_libs/Smarty.class.php'); require_once('smarty2_head.php'); date_default_timezone_set("中国");

//mysql_connect

$conn = mysql_connect(DB_HOST, DB_USER, DB_PASS) または die("接続に失敗しました" . mysql_error()); mysql_select_db(DB_DATABASENAME, $conn);
//テーブル内のレコード数

$sql = sprintf("select count(*) from %s", DB_TABLENAME); $result = mysql_query($sql, $conn); if ($result)

{
$dbcount = mysql_fetch_row($result); $tpl_db_count = $dbcount[0]; }
それ以外は
{
Die(「クエリが失敗しました」); }

//ヘッダー
$tpl_db_coltitle = $dbcolarray

//テーブルの内容
$tpl_db_rows = 配列(); $sql = sprintf("%s から %s を選択", implode(",",$dbcolarray), DB_TABLENAME); $result = mysql_query($sql, $conn); while ($row = mysql_fetch_array($result, MYSQL_ASSOC))// $row=mysql_fetch_assoc($result) と同等
$tpl_db_rows[] = $行
;
mysql_free_result($result); mysql_close($conn);
$tpl = 新しいスマーティ
$tpl->assign('db_count', $tpl_db_count); $tpl->assign('db_coltitle', $tpl_db_coltitle); $tpl->assign('db_rows', $tpl_db_rows); $tpl->display('smarty2.html'); ?>
// By MoreWindows( http://www.BkJia.com )
header("Content-Type: text/html; charset=utf-8");
require('../../smart_libs/Smarty.class.php');
require_once('smarty2_head.php');
date_default_timezone_set("中国");

//mysql_connect
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASS) または die("接続に失敗しました" . mysql_error());
mysql_select_db(DB_DATABASENAME, $conn);

//テーブル内のレコード数
$sql = sprintf("select count(*) from %s", DB_TABLENAME);
$result = mysql_query($sql, $conn);
if ($result)
{
$dbcount = mysql_fetch_row($result);
$tpl_db_count = $dbcount[0];
}
それ以外
{
die("クエリが失敗しました");
}

//ヘッダー
$tpl_db_coltitle = $dbcolarray;

//表中の内容
$tpl_db_rows = array();
$sql = sprintf("select %s from %s", implode(",",$dbcolarray), DB_TABLENAME);
$result = mysql_query($sql, $conn);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))// 与$row=mysql_fetch_assoc($result)等价
 $tpl_db_rows[] = $row;

mysql_free_result($result);
mysql_close($conn);

$tpl = 新しい Smarty;
$tpl->assign('db_count', $tpl_db_count);
$tpl->assign('db_coltitle', $tpl_db_coltitle);
$tpl->assign('db_rows', $tpl_db_rows);
$tpl->display('smarty2.html');
?>
3.smarty2.htmlファイル

 
 
 
 
 
 
{$smarty.const.DB_TABLENAME} 
 
 

表中に{$db_count}条记录

があります 
 
{foreach $db_coltitle as $col}
     
{/foreach}
{foreach $db_rows as $dbrow}
     
    {foreach $dbrow as $k=>$val}
         
    {/foreach}
     
{/foreach}
 
 
 


<頭>



{$smarty.const.DB_TABLENAME}


表中に{$db_count}条记录


{$col}
{$val}

{foreach $db_coltitle as $col}
   
{/foreach}
{foreach $db_rows as $dbrow}
   
    {foreach $dbrow as $k=>$val}
       
    {/foreach}
   
{/foreach}



4.smarty2.jsファイル

$(document).ready(function()
{
    //用CSS制御奇偶行的颜色
    $("テーブル tr:奇数").css("背景色", "#e6e6fa"); 
    $("table tr:even").css("背景色", "#fff0fa"); 
});   
$(document).ready(function()
{
    //CSS制御制奇偶行の颜色
    $("table tr:odd").css("background-color", "#e6e6fa");
    $("table tr:even").css("background-color", "#fff0fa");
}); 
5.smarty2.cssファイル

@charset "utf-8"; h1
{
色: 赤; テキストの配置:中央揃え
}
テーブル th
{
背景色:#7cfc00; }
@charset "utf-8";
h1
{
色:赤;
text-align:center;
}
テーブルです
{
背景色:#7cfc00; }
プログラムの実行結果は次のとおりです:



上記の例は Smarty の基本的な使用法を示しています。もちろん、Smarty にはさらに便利なインターフェイス関数も用意されています。たとえば、テーブルの場合は、{html_table} を使用してテーブルをすばやく生成できます。興味のある読者は試してみてください。

さて、このプログラムは基本的にjqueryテーブルに奇数偶数行の色を追加、削除、変更、設定する機能を追加することで完成します。詳しくは次の記事「PHPでMySqlデータベースにアクセスするための高度なAJAX技術」を参照してください。

MoreWindows からの抜粋

http://www.bkjia.com/PHPjc/478476.html

www.bkjia.com

http://www.bkjia.com/PHPjc/478476.html技術記事この記事を読む前に、「PHP を使用した MySql データベースへのアクセスに関する初章」を読むことをお勧めします。 Smarty は、PHP 言語で書かれたテンプレート エンジンです。業界で最も有名な PHP テンプレート エンジンの 1 つです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
{$col}
{$val}