0

重複の可能性:
ループ中にnum行を作成できません

別のテーブルの行数を取得するためにループ中に num 行を作成するために割り当てを試みます

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

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

2 に答える 2

1

次の行を入れても意味がありません:

$n = mysql_num_rows($select_num_sub);
$smarty->assign('n',$n);

内側のループの内側。smarty を介してクエリの行数を表示する場合は、次のようにします。

$select_num_sub = mysql_query("SELECT * FROM market WHERE sub_cat='".$row_sub['id']."' 
$n = mysql_num_rows($select_num_sub);
$smarty->assign('n',$n);

外側のループの内側で問題ありません。

于 2012-10-17T06:02:45.470 に答える
1

mysql_num_rows 関数は、テーブル内の行をカウントするために使用されるため、while ループの前に使用されます。

$select_sub_cat = mysql_query("SELECT * FROM sub_cat WHERE ct_id='".$row_main['id']."' LIMIT 8 ");
while($row_sub = mysql_fetch_array($select_sub_cat))
{
  $select_num_sub = mysql_query("SELECT * FROM market WHERE sub_cat='".$row_sub['id']."'  ");
  $n = mysql_num_rows($select_num_sub);
  while($row_num_sub = mysql_fetch_array($select_num_sub))
  {

    $smarty->assign('n',$n);
  }

 $sub_cats[] = $row_sub;
}
$smarty->assign('sub_cats',$sub_cats);
于 2012-10-17T06:36:33.477 に答える