SMRTY 怎麼做CCS下拉式功能表(導覽列)?
小弟遇到一些困難在MYSQL撈出資料時
有類別及文章兩個資料表
分別為class及state
在PHP的寫法是先撈出類別再撈出類別相關文章
但是目前小弟結合SMARTY樣板引擎
發現了 一件事情
我在PHP可寫兩個迴圈就能處理掉此問題
但是SMARTY並不能跑兩次迴圈{section name="net" loop=$sm_class}
{section name="net" loop=$sm_state}
{/section}
{/section}
SMARTY根本搞不懂雙層迴圈
PHP丟資料時這樣寫//提取導覽列資料
$sql="SELECT * FROM net_class ORDER BY num ASC";
$query=$db->query($sql);
while ($row_class=$db->fetch_array($query)) {
$sm_class[]=array("cid"=>$row_class,"num"=>$row_class,"name"=>$row_class);
}
$smarty->assign("sm_class",$sm_class);
//提取首頁文章資料
$sql="SELECT * FROM net_state ORDER BY num ASC";
$query=$db->query($sql);
while ($row_state=$db->fetch_array($query)) {
$sm_state[]=array("num"=>$row_state,"subject"=>$row_state,"content"=>$row_state);
}
$smarty->assign("sm_state",$sm_state);雖然PHP有把資料傳到樣板上
但是 SMARTY根本不認識他
因為每個類別要撈出哪幾個類別相關文章根本搞不清楚
就算我把$sql="SELECT * FROM net_state where cid='$cid' ORDER BY num ASC";
假設$cid是搜尋類別項目的索引鍵
這樣撈到了也無法達到 http://www.kingpc.com.tw網站 左側欄位這個目的
請問知道大大 這PHP 語法要怎麼改寫才能讓SMARTY樣板引擎能達到我的要求呢? 經過藍色小舖
的alight大大指導後
問題已解決
在php先做文章的分類...
smarty只幫你輸出...
php$sql="SELECT * FROM net_class ORDER BY num ASC";
$query=$db->query($sql);
while ($row_class=$db->fetch_array($query))
{
$sm_class[]=array(
"cid"=>$row_class,
"num"=>$row_class,
"name"=>$row_class
);
}
//提取首頁文章資料
$sql="SELECT * FROM net_state ORDER BY num ASC";
$query=$db->query($sql);
$sm_state=array();
while ( $row_state=$db->fetch_array($query))
{
$sm_state[]=array(
"cid"=>$row_state,
"num"=>$row_state,
"subject"=>$row_state,
"content"=>$row_state
);
}
//判斷每篇文章屬於哪個類別
foreach($sm_state as $idx => $item)
{
foreach($sm_class as $idx2 => $item2)
{
if($item["cid"]==$item2["cid"])
{
$data[$idx2][]=$item;
break;
}
}
}
$smarty->assign("sm_class",$sm_class);
$smarty->assign("data",$data);
section 裡面的name 就是他的索引,你兩個索引重複了,他當然撈不到資料
smarty{section name="idx" loop=$sm_class}
我是類別標題 {$sm_class.name}
{section name="idx2" loop=$data}
我是文章標題 {$data.subject}
{/section}
{/section}
頁:
[1]