2012-12-31 104 views
0

我正在建立一個超市與php,mysql和smarty模板的自定義購物車 產品類別和子類別必須在分開表 類別表(ID ,catname) 子類別表(ID,CAT_ID,子類),其中CAT_ID指類別 讓說我有2類和2個亞類爲每個類別 我的PHP代碼類別和子類別與php,mysql和smarty

$smarty = new Smarty; 
$smarty->caching = true; 
$smarty->cache_lifetime = 120; 
$category_mysql = "SELECT * FROM category"; 
$run_category = mysql_query($category_mysql, $link) or die(mysql_error()); 
$all_category = mysql_num_rows($run_category); 

$category_link = array(); 
$i=0; 
while ($category = mysql_fetch_assoc($run_category)) { 
      $ml = array(
       'id' => $category['id'], 
       'catname'=> $category['catname'], 
      ); 
      $category_link[$i++] = $ml; 
} 
$smarty->assign('category_link', $category_link); 
$smarty->display("products.tpl"); 

和我的HTML代碼是:

{section name=cats loop=$category_link} 
<div class="category">{$category_link[cats].catname}</div> 
{/section} 

如何查看它屬於的類別下的每個子類別? 像:

<div class="category">Category 1</div> 
<div class="subcat">Sub Cat 1</div> 
<div class="subcat">Sub Cat 2</div> 
<div class="category">Category 2</div> 
<div class="subcat">Sub Cat 3</div> 
<div class="subcat">Sub Cat 4</div> 

問候

+0

子類別如何與其各自的父類別關聯? – RobertB

+0

@RobertB這正是我想知道我要讓子類別顯示每個類別和serached的解決方案,並沒有發現 –

+0

我重讀你的問題,看看你提供我正在尋找的信息是什麼。 – RobertB

回答

1

有任何數量的不同的方式對皮膚這個特別的貓,一些比其他人更有效。下面是我的頭頂,意思是讓你朝着正確的大方向前進。

除了你$category_link你需要的東西,你的索引子類別按類別。像$subcategory_link這可能是一個數組的數組,首先由類別id(或名稱)索引,然後通過每個子類別(或其ID,或其他)的遞增整數。除了現有的查詢和while循環,運行檢索所有子類別的查詢,然後在$subcategory_link填充在第二次類似while循環的相關信息。

$sc = array(
    'id' => $subcategory['id'], 
    'subcategory' => $subcategory['subcategory'], 
); 
$subcategory_link[$subcategory['cat_id']][$j++] = $sc; 

請注意,此數組首先由類別id索引。然後在你的模板:

{foreach $category_link as $cat} 
<div class="category">{$cat.catname}</div> 
    {foreach $subcategory_link[$cat.cat_id] as $subcat} 
<div class="subcat">{$subcat.subcategory}</div> 
    {/foreach} 
{/foreach} 

:以上尚未被檢查正確的Smarty的語法。不過你應該明白了。

它作爲一個練習,爲您確定如何處理類別,沒有子類別,並提高工作效率。

+0

謝謝RobertB我做了它,它的工作 –