Smartyで画像とメッセージの一覧表示

<?php

session_start();

if (isset($_SESSION['us']) && $_SESSION['us'] !=null){       ➀
   require_once("db_init.php");                    ➁
   $ps = $db->query('SELECT * FROM table1 ORDER BY ban ASC'); ➂
   $r = $ps->fetchAll(); ➃
}else{
   session_destroy(); ➄
     header("Location: ./sailogin.php");
}
requiredirname__FILE__ ).'/libs/Smarty.class.php' );      ➅
$smarty = new Smarty(); ➅
$smarty->template_dir = dirname__FILE__ ).'/templates'; ➆
$smarty->compile_dir  = dirname__FILE__ ).'/templates_c'; ➆
$smarty->assign('myArray'$r); ➇
$smarty->display('g.tpl'); ➈
?>
 
①sessionが存在するかチェック
➁データベース初期化
③PDOでクエリ発行
➃fethcAllメソッドでレコードSELECTで指定されたレコード全件取得し変数$rに格納
➄セッションが存在しない場合、遷移
Smartyクラスをインスタンス
Smartyオブジェクトの設定
⑧必要なテンプレート変数をセット
➈テンプレートの呼び出し(実行)
<HTML>
<HEAD>
<META HTTP EQUIV='Content-Type' CONTENT='text/html;charset=UTF-8'>
<TITLE>ようこそABC写真へ!</TITLE>
</HEAD>
<BODY>

<P STYLE='color: red'>ABC写真</P>
<P><A HREF='g_up.php'>アップロード</A><BR>
<A HREF='g_logoff.php'>ログオフ</A></P>

{foreach from=$myArray item=foo}
<p>{$foo.ban}【投稿者:{$foo.nam}{$foo.dat}<BR>
{$foo.mes|nl2br}<BR>                         ➂
{$foo.gaz}</p>
<A HREF='./gz.img/{$foo.gaz}' TARGET='_bank'>
<IMG SRC="./gz_img/thumb_{$foo.gaz}"></A><HR>
{/foreach}

<P><A HREF='g_up.php'>アップロード</A><BR>
<A HREF='g_logoff.php'>ログオフ</A></P>
{foreach}関数は記述したPHPから渡されてきた配列を1つ1つ取り出して処理する場合
(例)
{foreach from=配列変数 item=要素を格納する変数}
繰り返し処理の中で行う処理
{/foreach}
➁{要素を格納する変数.カラム名}で、カラムの値を表示
➂{要素を格納する変数.カラム名|nl2br}でメッセージの改行を反映
実行結果

f:id:mkyosuke:20191216150331p:plain