ホームページ  >  記事  >  バックエンド開発  >  SMARTYさん、2サイクル目について教えてください。

SMARTYさん、2サイクル目について教えてください。

WBOY
WBOYオリジナル
2016-06-13 12:04:05895ブラウズ

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);
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。