Re: [請益] 一個迴圈的問題
※ 引述《clubflymf (出張嘴寫程式也不容易的)》之銘言:
: 請問您有先將$b1印出來看過資料嗎?
有 我有印出來 $b1[0]是1 $b1[1]印不出來
: 資料庫抓取多筆資料的迴圈是這樣子寫嗎?
: 基本教學大多會是
: while($b1 = mysql_fetch_array($a1)){
: //do something you want
: }
: 這種型式....
: 另外您的迴圈是無窮迴圈,
: 不知道您有沒有發現?
: 因為$b1 = mysql_fetch_array($al);
: 會取得第一筆資料 => $b1 = 1
: 因此 $b1 != null 是永遠成立的。
應該不會是無窮迴圈吧 我在迴圈的最後一行不是有讓程式繼續取得下一筆資料嗎
根據我SQL語法設定的條件 如果只能取到兩筆資料 迴圈跑完兩次就停了不是嗎
: 此外您的程式變數命名建議換成有意義的命名,
: 往後看程式比較不會那麼辛苦。
這是一直存在的壞習慣 我想可能寫的程式還不夠大支吧
一直沒嘗到苦果 還是謝謝你給的建議
: 題外話...
: 既然您使用了$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));// 平均
: ?>
嗯嗯 沒錯 有用到$i的話 我的確多此一舉@@
: ※ 引述《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: 220.133.215.86
推
09/01 15:03, , 1F
09/01 15:03, 1F
→
09/01 15:03, , 2F
09/01 15:03, 2F
→
09/01 15:04, , 3F
09/01 15:04, 3F
→
09/01 15:05, , 4F
09/01 15:05, 4F
→
09/01 15:11, , 5F
09/01 15:11, 5F
→
09/01 15:13, , 6F
09/01 15:13, 6F
→
09/01 15:17, , 7F
09/01 15:17, 7F
推
09/01 16:12, , 8F
09/01 16:12, 8F
→
09/01 16:12, , 9F
09/01 16:12, 9F
→
09/01 18:35, , 10F
09/01 18:35, 10F
推
09/01 22:26, , 11F
09/01 22:26, 11F
→
09/01 22:28, , 12F
09/01 22:28, 12F
推
09/02 14:49, , 13F
09/02 14:49, 13F
→
09/02 23:48, , 14F
09/02 23:48, 14F
討論串 (同標題文章)