2012-10-17 33 views
0

NUM行,我有拖表 第一個表:對於產品 二表:分類我不能讓內循環的同時

我想在瀏覽器中顯示這樣

類別1(20) 類別2(5) 類別3(3)

$select_sub_cat = mysql_query("SELECT * FROM sub_cat WHERE ct_id='".$row_main['id']."' "); 
while($row_sub = mysql_fetch_array($select_sub_cat)) 
{ 
    $select_num_sub = mysql_query("SELECT * FROM market WHERE sub_cat='".$row_sub['id']."' "); 
    $row_num_sub = mysql_num_rows($select_num_sub); 
    $smarty->assign('numb',$row_num_sub); 

$sub_cats[] = $row_sub; 
} 
$smarty->assign('sub_cats',$sub_cats); 
+2

那麼你寫的方式,你有數字變量覆蓋自己與每個傳遞所以充其量最好你會得到在最初的查詢中的最後一行的計數。 –

+0

請選擇您的問題之一,並刪除其他:http://stackoverflow.com/questions/12927987/repeat-result-for-num-rows-in-php – jheddings

回答

0

嘗試這種情況:

$select_sub_cat = mysql_query("SELECT * FROM sub_cat WHERE ct_id='".$row_main['id']."' "); 
while($row_sub = mysql_fetch_array($select_sub_cat)) 
{ 
    $select_num_sub = mysql_query("SELECT * FROM market WHERE sub_cat='".$row_sub['id']."' "); 
    $smarty->assign('numb',$row_num_sub); 

$sub_cats[] = $row_sub; 
$sub_cats['count']=mysql_num_rows($select_num_sub); 
} 
$smarty->assign('sub_cats',$sub_cats); 
+0

thnx爲你重播,但你重播不起作用$ sub_cats ['counts'] ???你的意思是計數字段或計數順序?如果你的意思是像id這樣的自動增量它不起作用,我希望能夠在近期幫助我,因爲我試着分配,但是我無法爲我的循環做出num行? – user1751991

+0

我所做的只是將字段數添加到您的$ sub_cats數組中,您每次查詢運行時都會覆蓋您的計數字段。我給了你sql的答案,看到我不使用Smarty位的問題。 –

0

嘗試

$select_sub_cat = mysql_query("SELECT * FROM sub_cat WHERE ct_id='".$row_main['id']."' "); 
while($row_sub = mysql_fetch_array($select_sub_cat)) 
{ 
    $select_num_sub = mysql_query("SELECT * FROM market WHERE sub_cat='".$row_sub['id']."' ");   
$sub_cats[] = $row_sub; 
$sub_cats['count']=mysql_num_rows($select_num_sub); 
} 
$smarty->assign('sub_cats',$sub_cats); 

然後調用您的智者:

{$ sub_cats.name}({$ sub_cats.count})// $ sub_cats.name應該是 '名' 的類別