作者clubflymf (出张嘴写程式也不容易的)
看板PHP
标题Re: [请益] 一个回圈的问题
时间Wed Sep 1 14:30:27 2010
请问您有先将$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