怎么拆离数组?

pcroal 2002-03-05 01:27:56
for ($i=0;$i<=9;$i++){
$sql="select page from table1 where name='"$name[$i]"'";
$result = mysql_fetch_array($sql);
echo $result[0];
}


怎么将 $result数组中的数据拆离开?
...全文
72 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
SimonDW 2002-03-06
  • 打赏
  • 举报
回复
晕倒!
老兄 没看我前面给你的帖子的恢复吗?
要先执行$res=mysql_query($sql),得到resultid,
然后才能用mysql_fetch_array($res)、mysql_num_rows进行操作!!
qsnake 2002-03-06
  • 打赏
  • 举报
回复
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类型
qsnake 2002-03-06
  • 打赏
  • 举报
回复
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类型
pcroal 2002-03-06
  • 打赏
  • 举报
回复
举个例子吧:
表为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中我运行了一下代码,显示结果是正确的,不知这样输出对不对。
SimonDW 2002-03-05
  • 打赏
  • 举报
回复
foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement
qsnake 2002-03-05
  • 打赏
  • 举报
回复
你应该说出表结构,和需要查询得到的结果
你那样的程序就算得到也太过复杂,那么多的query
其实应该可以写出SQL语句的
rosen 2002-03-05
  • 打赏
  • 举报
回复
你的代码错了,应该:
把这些替换原来的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."'");

(试一下,把错误告诉我,我一直在线)
pcroal 2002-03-05
  • 打赏
  • 举报
回复
我想统计每个人的办报的数目和总页数(page),每个人办理的份数可以由
mysql+num_rows()求出,但是page我一开始是用mysql_fetch_array($query)
求得的,这样每一条记录的page不是都在一个数组中存着吗?
我就是想把这个数组中的每个单元求出来,然后求和。
后来用了sum(),但是网页上一直显示不出来,
总是出 Resource #ID 3.
pcroal 2002-03-05
  • 打赏
  • 举报
回复
$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];
}
pcroal 2002-03-05
  • 打赏
  • 举报
回复
$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];
}
rosen 2002-03-05
  • 打赏
  • 举报
回复
我还是不太明白,你的意思是不是在数据库中name字段里有很多个值相同数据,然后再通过name把所对应的page值全部取出来?
rosen 2002-03-05
  • 打赏
  • 举报
回复
我的改一下:
$query=("select name from table1");
$result0=mysql_num_rows($query);
然后再把你那句改为:
$sql="select page from table1 where name=$result0[$i]";

应该是这样,共同进步.
rosen 2002-03-05
  • 打赏
  • 举报
回复
$name[$i]从哪里来的?
你好像在{}内少打了几句。
$query=("select name from table1");
$result0=mysql_num_rows($query[$i]);
然后再把你那句改为:
$sql="select page from table1 where name=$result0";
这样name才会随$i的值变化而变化。





qsnake 2002-03-05
  • 打赏
  • 举报
回复
是不是想这样子?
$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;
rosen 2002-03-05
  • 打赏
  • 举报
回复
既然你用的是$name[$i],
那么把:echo $result[0];
改为:echo $result[$i];
pcroal 2002-03-05
  • 打赏
  • 举报
回复
拆到另一个数组中,我想把查询结果求和。
qsnake 2002-03-05
  • 打赏
  • 举报
回复
拆成什么样子?

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧