ホームページ >バックエンド開発 >PHPチュートリアル >この入れ子になった配列ループが間違っているかどうかわかる人はいますか?

この入れ子になった配列ループが間違っているかどうかわかる人はいますか?

WBOY
WBOYオリジナル
2016-06-23 13:53:55956ブラウズ

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){
は unset を使用して配列をクリアします。

お二人ともご回答ありがとうございます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。