ホームページ >バックエンド開発 >PHPチュートリアル >SMARTY二次サイクルアドバイス
うわー
コードは現在のロジックを表示するものですが、機能しませんでした
長い間 SMARTY を学習していません
テーブルが 2 つあります
forum_forum はディスカッション フォーラム ID、主に `name`、` fid`
forum_topic_type はディスカッション フォーラム ID のトピック分類です: 主に `typeid`、`name`、`fid`
もともと
私は最初に
forum_forum をすべてのセクションとともにリストし、それから Smarty の assign に追加しました
フロントデスクのすべてのセクションのリストに正常に表示されました
しかし、セクション名の下にあるこのディスカッションセクションの下にあるすべての「トピックカテゴリ」をサイクルアウトしたいのですが、
しかし、これらのことがわかりました(このテーブル forum_forum ) がフォアグラウンドで循環されています。 ループ結果の ID が既にテンプレートに含まれているため、ループ関連のトピック分類を取得できません
そこで、考えました...smarty を割り当てる前に、試してみてください。 foreach を実行して結果がどうなるか見てみましょう
それから、にマージできるかどうかを試してください 同じグループ番号を再度割り当てるのは少し不便なようです
そこで、先輩方にアドバイスを求めたいです
解決策考えたのですが
1. 複数テーブルのクエリをマージするのですが、サブジェクト分類が複数あるので諦めました
2. Smartyプラグインを作る、試してみましたが。それも行き詰まっていて前に進めません
実はSMARTYは二次循環の問題に長い間悩まされてきましたが、もはや避けては通れないようです、このことを十分に理解した上でアドバイスをお願いいたします。質問
アドバイスをお願いします。
質問もしてください
SMARTY を使用してモディファイアを作成すると、まったく機能しません
PDO を使用しています
$pdoのようなハンドル? しかし、この種のプラグインはテンプレートから直接呼び出され、$pdoをまったく追加できません
プラグインも追加してみましたが、データベースファイルは関数に導入されますが、データベースの操作が間違っていることも意味します
何か解決策はありますか? それとも、プラグインのこの部分がデータベースをまったく操作できないのでしょうか?
どのステップが失敗しましたか? $row_typeには価値がないのでしょうか?
1. テンプレート処理を通じて、クラス テーブルは結果セットを取得するためにサブクラス テーブルに関連付けられます。スマートな割り当ての後、テンプレートは 2 回循環されます。
2. プログラムを介したクエリ結果セットの処理: 結果セットを返し、プログラム内でそれを文字列にアセンブルし、それをテンプレートに直接割り当てます。
//所有版块@$row_fid = "SELECT * FROM `forum_forum` ORDER BY `displayorder` ASC";$stmt = $pdo->prepare($row_fid);$stmt->execute();$row_forum = $stmt->fetchAll(PDO::FETCH_ASSOC); //主题分类 foreach ($row_forum as $key => $value) { $fid = $value["fid"]; @$sql = "SELECT `typeid`,`name` FROM `forum_topic_type` WHERE `fid` = $fid"; $stmt = $pdo->prepare($sql); $stmt->execute(); $row_type = $stmt->fetchAll(PDO::FETCH_ASSOC); } print_r($row_type);$smarty -> assign("all_forum",$row_forum);
お兄さん、ありがとう
そういう意味です