SMARTY セカンダリ ループに関するアドバイスを求めています
この投稿の最終編集者は sky94132003 2014-08-06 03:20:32
<br />//所有版块<br />@$row_fid = "SELECT * FROM `forum_forum` ORDER BY `displayorder` ASC";<br />$stmt = $pdo->prepare($row_fid);<br />$stmt->execute();<br />$row_forum = $stmt->fetchAll(PDO::FETCH_ASSOC);<br /><br /> //主题分类<br /> foreach ($row_forum as $key => $value) {<br /> $fid = $value["fid"];<br /> @$sql = "SELECT `typeid`,`name` FROM `forum_topic_type` WHERE `fid` = $fid";<br /> $stmt = $pdo->prepare($sql);<br /> $stmt->execute();<br /> $row_type = $stmt->fetchAll(PDO::FETCH_ASSOC);<br /> }<br /> print_r($row_type);<br />$smarty -> assign("all_forum",$row_forum);<br />
ログイン後にコピー
コードは現在のロジックを表示するものですが、失敗しました
SMARTY を学ぶのに時間はかかりません
テーブルが 2 つあります
forum_forum はディスカッション フォーラム ID、主に `name`、
`fid`forum_topic_type はディスカッションフォーラムですトピック分類 ID は主に `typeid`、`name`、
`fid`本来は最初に
forum_forum のすべてのセクションをリストし、それを Smarty の assign
に追加しました。フロントデスクのすべてのセクションのリストに正常に表示されました。
ですが、セクション名の下に表示したかったのですが、このディスカッション セクションの下にあるすべての「トピック カテゴリ」をループアウトしました。
しかし、これら (このテーブル forum_forum) が変更されていることがわかりました。フォアグラウンドでループされている
ループ関連のトピック分類に fid を取得できません。ループ結果の ID はテンプレート でしか取得できないため、考えてみました。 Smarty を割り当てる前に、foreach を実行して結果を確認してください。
次に、同じグループにマージして割り当てられるかどうかを確認してください。しかし、少し不便なようです
先輩たちに
の考えた解決策を聞きたいのですが1.トピック カテゴリが複数あるため、この方法は諦めました
2. スマートなプラグインを作成してみましたが、行き詰まって先に進めません
<🎜。 >実はSMARTYは二次循環問題に長い間悩んでいたのですが、もう逃れられないようなので、このような問題をしっかり理解した上でアドバイスをお願いします
お願いします。アドバイスをください!
-----解決策---------
//所有版块<br />@$row_fid = "SELECT * FROM `forum_forum` ORDER BY `displayorder` ASC";<br />$stmt = $pdo->prepare($row_fid);<br />$stmt->execute();<br />$row_forum = $stmt->fetchAll(PDO::FETCH_ASSOC);<br /> <br /> //主题分类<br /> foreach ($row_forum as $key => $value) {<br /> $fid = $value["fid"];<br /> @$sql = "SELECT `typeid`,`name` FROM `forum_topic_type` WHERE `fid` = $fid";<br /> $stmt = $pdo->prepare($sql);<br /> $stmt->execute();<br /> $row_forum[$key]['list'] = $stmt->fetchAll(PDO::FETCH_ASSOC);<br /> }<br /> print_r($row_forum);<br />$smarty -> assign("all_forum",$row_forum);
ログイン後にコピー