現在、単純なフォーラムを構築しようとしています。私はList_Category()
のカテゴリを取得するために関数を使用しています。次に、List_SubCategory($id)
をList_Category()
の中に呼び出して、カテゴリのサブカテゴリを取得します。しかし、私が問題を抱えているのは、もし私がecho
List_SubCategory($id)
からの結果であるとすると、そのサブカテゴリがコンテンツボックスの上に表示されるのではなく(それは私には意味をなさない)、ファンクション内の関数を呼び出すと、テンプレートが破損する
を、それは私がecho
List_SubCategory($id)
で使用している場合はどのように見えるか:
機能:
public function List_Category() {
$GetCat = $this->dbc->prepare("SELECT id,name,type,minrank,mini_icon FROM categories ORDER BY id ASC");
if($GetCat->execute()) {
$GetCat->bind_result($catid, $catname, $cattype, $catminrank, $caticon);
$GetCat->store_result();
if($GetCat->num_rows >= 1) {
while($GetCat->fetch()) {
echo '<h3 id="CatTitle"><a href="#"><i class="'.$caticon.'"></i> '.$catname.'</a> <a href="javascript:void(0)" class="CatMin-'.$catid.'"><i class="fa fa-minus-square" id="CategoryMinim"></i></a></h3>
<div id="CategoryBlock" class="Cat-'.$catid.'">
'.$this->List_SubCategory($catid).'
</div>
<br style="clear:both">';
}
}
} else {
return BoardTemplate::ThrowNewAlert("error", $GetCat->error);
}
}
public function List_SubCategory($id) {
$GetSub = $this->dbc->prepare("SELECT id,name,attach_id FROM subcategories WHERE attach_id = ? ORDER BY id ASC");
$GetSub->bind_param("i", $id);
if($GetSub->execute()) {
$GetSub->bind_result($subid, $subname, $subattach);
$GetSub->store_result();
if($GetSub->num_rows >= 1) {
while($GetSub->fetch()) {
echo '<div id="CatSep" style="position: relative;">
<i class="fa fa-comments-o" id="ReadStatus"></i> <div class="Title"><a href="#">'.$subname.'</a></div>
<img src="http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/78/783bd2db99ca87c20c23b2ff59427fdd8aff8329_full.jpg" class="SizeTinyAvatar" id="CatAva" style="float:right;" />
<div class="Desc">
<div style="float: right" id="fr"><b>Latest:</b> <a href="#">Welcome to your first fucking...</a></div><br style="clear:both">
<div style="float: right" id="fr">Posted by <a href="#">Kah!</a>, 2 days ago</div>
</div>
<div id="StatsHelp">
<div id="CatStats">10<br>Topics</div>
<div id="CatStats">10<br>Posts</div>
</div>
</div>';
}
} else {
echo "no cat";
}
}
}
List_Category()
がその結果をエコーしているので、私の現在の理論は壊れています。List_SubCategory($id)
もそうしているので、エコーの中にエコーしています。ファンクション?
私は自分のHTMLや私のCSSに間違いがないことを保証することができます。 List_SubCategory($id)
のecho
をreturn
に置き換えた場合、最初の画像のように見えますが、while()
を無視しているように見えます。これはデータベースの最初の行しか与えないからです。
これは説明が難解でした。しかし、どんな助けもありがたいです。私はそれをどのように見せなければならないのか分かりません。
ご意見ありがとうございます。変数にエコーを割り当てようとしましたが、whileループの外で変数を返しました。しかし、これはデータベース内の最後の行だけを返し、2つではありません(2があるため)。 whileループの中にリターンを置くと、最初の行だけが返されます。 –
関数の先頭に変数を定義し( '$ html =" ";')、それをwhile( '$ html + =" [あなたのhtmlコード] ";')に追加する必要があります。毎回変わる。 – dtkahl
これを行うと、単に "0"が出力されます –