2012-10-17 27 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应该是 '名' 的类别