ホームページ >バックエンド開発 >PHPチュートリアル >discuz のデータベース呼び出しメカニズムとは一体何ですか?
100 点を与えます
最近 discuz を勉強したところ、公式パッケージの多くの HTML テンプレートにはデータベースを呼び出すステートメントが含まれていないことがわかりました。これについては少し混乱しています。 call. ループとは何ですか?
しかし、実際はその逆であり、呼び出しのメカニズムがわかりません
より分かりやすく説明するために例を示します。次のループ:
<!--{loop $trades[$tid] $key $trade}--> <li class="cl"> <!--{if $trade[aid]}--> <a href="forum.php?mod=viewthread&do=tradeinfo&tid=$tid&pid=$trade[pid]" target="_blank"><img src="$trade[aid]" width="80" alt="$trade[subject]" /></a> <!--{else}--> <a href="forum.php?mod=viewthread&do=tradeinfo&tid=$tid&pid=$trade[pid]" target="_blank"><img src="{IMGDIR}/nophoto.gif" width="80" alt="$trade[subject]" /></a> <!--{/if}--> <!--{if $trade[price] > 0}--> ¥ $trade[price] <!--{/if}--> <!--{if $trade[credit] > 0}--> <!--{if $trade[price] > 0}-->{lang additional} <!--{/if}--> $trade[credit] {$_G[setting][extcredits][$_G['setting']['creditstransextra'][5]][unit]}{$_G[setting][extcredits][$_G['setting']['creditstransextra'][5]][title]} <!--{/if}--> <p><a href="forum.php?mod=viewthread&do=tradeinfo&tid=$tid&pid=$trade[pid]" target="_blank">$trade[subject]</a></p> </li> <!--{/loop}-->
php にはループはありません。ループは discuz のコードであり、テンプレートは事前に編集されています。discuz のルート ディレクトリ/data/template に、foreach になる多くのコンパイル済みファイルが表示されます。
htm テンプレートはどうでしょうか。 PHP からどのデータ テーブルが取得されるか知っていますか? リンクに従ってこれを見つけることができます forum_viewthread.php このファイルは、論理処理、データベースのクエリ、整理のための php ページです。変数...の処理はこのファイル内で全て完了です
データを整理したら、include templateを使ってhtmファイルを導入し、その中でloopなどを実行します
上記の方法でdiscuzのコード実行シーケンスを追跡することができます
あなたが見ているのは HTML テンプレートであり、php スクリプトではないことも私は知っています
一般的な展開について学ぶには、Baidu で DZ の簡単なマニュアルを検索してください