function get_number_list($cat_id){ $sql=$GLOBALS['db']->query("select * from ".$GLOBALS['db']->table('dept_category')." order by sort"); while($row=$GLOBALS['db']->fetch_array($sql)){ if($row){ $result=$GLOBALS['db']->query("select * from ".$GLOBALS['db']->table('number')." where dept=".$row['cat_id']." and cat_id='$cat_id' order by sort"); while($rows=$GLOBALS['db']->fetch_array($result)){ if($rows){ $number_show[] = array( 'id' => $rows['id'], 'title' => $rows['title'], 'user' => $rows['username'] ); } } $cat_name[]=array( 'sort' => $row['sort'], 'cat_name' => $row['cat_name'], 'topid' => $number_show ); } } return $cat_name; }
<table width="99%" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> {foreach from=$dept_list name=dept_list item=dept} <tr bgcolor="#FFFFFF"> <td height="25" colspan="2" class="bumen"> {$dept.cat_name}</td> </tr> {foreach from=$dept.topid item=number} <tr bgcolor="#FFFFFF"> <td width="46%" height="25" align="center">{$number.user}</td> <td width="54%" align="center">{$number.title}</td> </tr> {/foreach} {/foreach} </table>
number_show がクリアされていないため、取得される最初のレコードは次のとおりです。常にそこにあります。
なお、
rrree
$row はすでに While の状態になっていますが、この If が false の場合は while にまったく入らないため、if 判定を追加する必要はありません。
number_show がクリアされていないため、取得された最初のレコードは常に存在し、それ以降のレコードもすべて存在します。
while($row=$GLOBALS['db']->fetch_array($sql)){ if($row){
お二人ともご回答ありがとうございます