是不是想这样子? $cnt = 0; for ($i=0;$i< =9;$i++){ $sql="select page from table1 where name='"$name[$i]"'"; $rs = mysql_query($sql); $result = mysql_fetch_array($rs); $cnt =$cnt+$result[0]; } echo $cnt;
$name[$i]从哪里来的? 你好像在{}内少打了几句。 $query=("select name from table1"); $result0=mysql_num_rows($query[$i]); 然后再把你那句改为: $sql="select page from table1 where name=$result0"; 这样name才会随$i的值变化而变化。
我的改一下: $query=("select name from table1"); $result0=mysql_num_rows($query); 然后再把你那句改为: $sql="select page from table1 where name=$result0[$i]";应该是这样,共同进步.
$a=array(0,0,0,0,0,0,0,0,0); $b=array(0,0,0,0,0,0,0,0,0); $name=array("","张三","李四","王五","赵六"); for($i=1; $i<=4; $i++) { $query = mysql_query("select page from table1 where name='".$name[$i]."' and time>='".$start."' and time<='".$end."'"); $a[$i] = mysql_num_rows($query); $ap[$i] =mysql_query("SELECT sum(page) FROM table1 WHERE name='".$name[$i]."' and time>='".$start."' and time<='".$end."'"); $query = mysql_query("select * from fabao where fapeople='".$n[$i]."' and time>='".$start."' and time<='".$end."'"); echo $ap[$i]; }
$a=array(0,0,0,0,0,0,0,0,0); $b=array(0,0,0,0,0,0,0,0,0); $name=array("","张三","李四","王五","赵六"); for($i=1; $i< =4; $i++) { $query = mysql_query("select page from table1 where name='".$name[$i]."' and time> ='".$start."' and time< ='".$end."'"); $a[$i] = mysql_num_rows($query); $b[$i] = mysql_query("SELECT sum(page) FROM table1 WHERE name='".$name[$i]."' and time> ='".$start."' and time< ='".$end."'"); echo $b[$i]; }
你的代码错了,应该: 把这些替换原来的for循环:$query=mysql_query("select page from table1 where name='".$name[$i]."' and time> ='".$start."' and time<='".$end."'"); while ($a=mysql_num_rows($query)) { echo $a[$i]; } $query2=mysql_query("SELECT sum(page) FROM table1 WHERE name='".$name[$i]."' and time>='".$start."' and time<='".$end."'"); while ($ap=mysql_num_rows($query)) { echo $ap[$i]; } $query3=mysql_query("select * from fabao where fapeople='".$n[$i]."' and time> ='".$start."' and time<='".$end."'");(试一下,把错误告诉我,我一直在线)
foreach(array_expression as $value) statement foreach(array_expression as $key => $value) statement
举个例子吧: 表为table1,字段有 ID,name,page,send,notes和4条记录: ID,name, page, reciever, time, notes; 1, 张三, 4, 李四,2002-01-01, 已经送出 2,王五, 3, 赵六,2002-01-15, 已经送出 3,王五, 6, 李四,2002-02-01, 已经送出 4,张三, 9, 赵六,2002-02-15, 已经送出 5, 田七, 2, 刘八,2002-03-01,已经送出 6,张三, 3, 刘八,2002-03-15,已经送出 …… ………… 假如已经有了这样的6条记录,我现在要统计2002年1月到3月信息发送情况 我设了一个数组$a分别来存每个人的情况; 初始化: $name=array("","张三","李四","田七"); $a=array(0,0,0,0);//处理信息的人有四个,每个人处理总份数分别存入$a[1],$a[2],$[3],$[4] $ap=array(0,0,0,0);//用来存放所的信息页数(page)的和。for($i=1;$i<=3;$i++){ $query=mysql_query("select page from table1 where name='".$name[$i]."' and time>='2002-01-01' and time <='2002-03-31'); $a[$i]=mysql_num_rows($query);//这里得到每个人处理信息的总份数,并放到$a中去 $result=mysql_fetch_array($rs); for ($j=a[$i],$j=0,$j--){ $ap[$i]=$ap[$i]+$result[$j]; } } for($i=1;$i<=3;$i++){ echo $name[$i]." ".$a[$i]." ".$ap[$i]."<br>"; } 以上是最初的思路,代码不会有什么问题吧?后来我想用sum()于是 for($i=1;$i<=3;$i++){ $query=mysql_query("select page from table1 where name='".$name[$i]."' and time>='2002-01-01' and time <='2002-03-31'); $a[$i]=mysql_num_rows($query);//这里得到每个人处理信息的总份数,并放到$a中去 $ap[$i]=mysql_query("select sum(page) from table1 where name='".$name[$i]."' and time>='2002-01-01' and time <='2002-03-31'); } 解果中出现了 Resourc ID #1,#号后是一些数字, 但在phpMyAdmin中我运行了一下代码,显示结果是正确的,不知这样输出对不对。
for($i=1;$i< =3;$i++){ $query = mysql_query("select count(ID) as a, sum(page) as ap from table1 where name='".$name[$i]."' and time>='2002-01-01' and time<='2002-03-31'); $rows = mysql_fetch_array($query); $a[$i] = $rows['a'];//这里得到每个人处理信息的总份数,并放到$a中去 $ap[$i]=$rows['ap']; }page字段改为int类型
for($i=1;$i< =3;$i++){ $query = mysql_query("select count(ID) as a, sum(page) as ap from table1 where name='".$name[$i]."' and time>='2002-01-01' and time<='2002-03-31'); $rows = mysql_fetch_array($query); $a[$i] = $rows['a'];//这里得到每个人处理信息的总份数,并放到$a中去 $ap[$i]=$rows['ap']; }page字段改为int类型
$cnt = 0;
for ($i=0;$i< =9;$i++){
$sql="select page from table1 where name='"$name[$i]"'";
$rs = mysql_query($sql);
$result = mysql_fetch_array($rs);
$cnt =$cnt+$result[0];
}
echo $cnt;
你好像在{}内少打了几句。
$query=("select name from table1");
$result0=mysql_num_rows($query[$i]);
然后再把你那句改为:
$sql="select page from table1 where name=$result0";
这样name才会随$i的值变化而变化。
$query=("select name from table1");
$result0=mysql_num_rows($query);
然后再把你那句改为:
$sql="select page from table1 where name=$result0[$i]";应该是这样,共同进步.
$b=array(0,0,0,0,0,0,0,0,0);
$name=array("","张三","李四","王五","赵六");
for($i=1; $i<=4; $i++) {
$query = mysql_query("select page from table1 where name='".$name[$i]."' and time>='".$start."' and time<='".$end."'");
$a[$i] = mysql_num_rows($query);
$ap[$i] =mysql_query("SELECT sum(page) FROM table1 WHERE name='".$name[$i]."' and time>='".$start."' and time<='".$end."'");
$query = mysql_query("select * from fabao where fapeople='".$n[$i]."' and time>='".$start."' and time<='".$end."'");
echo $ap[$i];
}
$b=array(0,0,0,0,0,0,0,0,0);
$name=array("","张三","李四","王五","赵六");
for($i=1; $i< =4; $i++) {
$query = mysql_query("select page from table1 where name='".$name[$i]."' and time> ='".$start."' and time< ='".$end."'");
$a[$i] = mysql_num_rows($query);
$b[$i] = mysql_query("SELECT sum(page) FROM table1 WHERE name='".$name[$i]."' and time> ='".$start."' and time< ='".$end."'");
echo $b[$i];
}
mysql+num_rows()求出,但是page我一开始是用mysql_fetch_array($query)
求得的,这样每一条记录的page不是都在一个数组中存着吗?
我就是想把这个数组中的每个单元求出来,然后求和。
后来用了sum(),但是网页上一直显示不出来,
总是出 Resource #ID 3.
把这些替换原来的for循环:$query=mysql_query("select page from table1 where name='".$name[$i]."' and time> ='".$start."' and time<='".$end."'");
while ($a=mysql_num_rows($query))
{
echo $a[$i];
}
$query2=mysql_query("SELECT sum(page) FROM table1 WHERE name='".$name[$i]."' and time>='".$start."' and time<='".$end."'");
while ($ap=mysql_num_rows($query))
{
echo $ap[$i];
}
$query3=mysql_query("select * from fabao where fapeople='".$n[$i]."' and time> ='".$start."' and time<='".$end."'");(试一下,把错误告诉我,我一直在线)
你那样的程序就算得到也太过复杂,那么多的query
其实应该可以写出SQL语句的
foreach(array_expression as $key => $value) statement
表为table1,字段有 ID,name,page,send,notes和4条记录:
ID,name, page, reciever, time, notes;
1, 张三, 4, 李四,2002-01-01, 已经送出
2,王五, 3, 赵六,2002-01-15, 已经送出
3,王五, 6, 李四,2002-02-01, 已经送出
4,张三, 9, 赵六,2002-02-15, 已经送出
5, 田七, 2, 刘八,2002-03-01,已经送出
6,张三, 3, 刘八,2002-03-15,已经送出
……
…………
假如已经有了这样的6条记录,我现在要统计2002年1月到3月信息发送情况
我设了一个数组$a分别来存每个人的情况;
初始化:
$name=array("","张三","李四","田七");
$a=array(0,0,0,0);//处理信息的人有四个,每个人处理总份数分别存入$a[1],$a[2],$[3],$[4]
$ap=array(0,0,0,0);//用来存放所的信息页数(page)的和。for($i=1;$i<=3;$i++){
$query=mysql_query("select page from table1 where name='".$name[$i]."' and time>='2002-01-01' and time <='2002-03-31');
$a[$i]=mysql_num_rows($query);//这里得到每个人处理信息的总份数,并放到$a中去
$result=mysql_fetch_array($rs);
for ($j=a[$i],$j=0,$j--){
$ap[$i]=$ap[$i]+$result[$j];
}
}
for($i=1;$i<=3;$i++){
echo $name[$i]." ".$a[$i]." ".$ap[$i]."<br>";
}
以上是最初的思路,代码不会有什么问题吧?后来我想用sum()于是
for($i=1;$i<=3;$i++){
$query=mysql_query("select page from table1 where name='".$name[$i]."' and time>='2002-01-01' and time <='2002-03-31');
$a[$i]=mysql_num_rows($query);//这里得到每个人处理信息的总份数,并放到$a中去
$ap[$i]=mysql_query("select sum(page) from table1 where name='".$name[$i]."' and time>='2002-01-01' and time <='2002-03-31');
}
解果中出现了 Resourc ID #1,#号后是一些数字,
但在phpMyAdmin中我运行了一下代码,显示结果是正确的,不知这样输出对不对。
$query = mysql_query("select count(ID) as a, sum(page) as ap from table1 where name='".$name[$i]."' and time>='2002-01-01' and time<='2002-03-31');
$rows = mysql_fetch_array($query);
$a[$i] = $rows['a'];//这里得到每个人处理信息的总份数,并放到$a中去
$ap[$i]=$rows['ap'];
}page字段改为int类型
$query = mysql_query("select count(ID) as a, sum(page) as ap from table1 where name='".$name[$i]."' and time>='2002-01-01' and time<='2002-03-31');
$rows = mysql_fetch_array($query);
$a[$i] = $rows['a'];//这里得到每个人处理信息的总份数,并放到$a中去
$ap[$i]=$rows['ap'];
}page字段改为int类型
老兄 没看我前面给你的帖子的恢复吗?
要先执行$res=mysql_query($sql),得到resultid,
然后才能用mysql_fetch_array($res)、mysql_num_rows进行操作!!