Re: [請益] 一個迴圈的問題

看板PHP作者 (出張嘴寫程式也不容易的)時間13年前 (2010/09/01 14:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
請問您有先將$b1印出來看過資料嗎? 資料庫抓取多筆資料的迴圈是這樣子寫嗎? 基本教學大多會是 while($b1 = mysql_fetch_array($a1)){ //do something you want } 這種型式.... 另外您的迴圈是無窮迴圈, 不知道您有沒有發現? 因為$b1 = mysql_fetch_array($al); 會取得第一筆資料 => $b1 = 1 因此 $b1 != null 是永遠成立的。 此外您的程式變數命名建議換成有意義的命名, 往後看程式比較不會那麼辛苦。 題外話... 既然您使用了$i當計數器, 那算平均就不需要抓資料筆數, 除以 ($i+1) 就可以了。 還有debug的基本功就是印出變數來檢查且耐心的慢慢找, 希望對您有幫助。 <?php $sql_query = " select `level` from `vata2` where `save` = '1' and `id` = '1' and `level` != '0' ";// sql語法 $rs = mysql_query($sql_query);// 查詢資料 $i = 0;// 計數器 $sum = 0;// 總合 $avg = 0;// 平均 while($data = mysql_fetch_array($rs)){ // 抓取資料 $sum += $data[$i]; $i++; } $avg = ($sum/($i+1));// 平均 ?> ※ 引述《ioioiii (io)》之銘言: : 小弟從資料庫裡拉出來的資料有兩筆分別是1和2兩個整數 也就是說$d1=2 : 以下是我的code : <? $a1=mysql_query("SELECT level FROM vata2 WHERE save='1' and id='1' and : level!='0'"); : $b1=mysql_fetch_array($a1); : $g=0; $i=0; : $d1=mysql_num_rows($a1); : while($b1!=NULL){ : $g+=$b1[$i]; : $i++; : $b1=mysql_fetch_array($a1);} : echo $g; : 我的想法是取得資料有兩筆所以在迴圈跑兩次 則第一次$g=1第二次$g=1+2=3 : 可是我echo出來$g卻是1 : 第一我不明白我的問題出在哪裡 : 第二如果要達成我的目的應該要怎麼改 : 麻煩善心人士高手們解答 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.40
文章代碼(AID): #1CVVC51C (PHP)
文章代碼(AID): #1CVVC51C (PHP)