晕晕乎乎问问题,MYSQL数据库循环读数据问题

superxs 2005-03-13 08:53:41
有一个循环读数据库的问题需要提问,晕晕中
/*循环读取当前时间30天数据进行读取*/
for($i=0;$i<$30;$i++){
if($i==0){
$sql="select * from 第一个数据表 where reporttime ='$currdate'";
}
else{
$dates=date("Y-m-d",strtotime("$currdate -".$i." day"));
$sql="select * from 第一个数据表 where reporttime ='$dates'";
}
$result=@mysql_query($sql,$db);
while($myrow=mysql_fetch_array($result))
{
/*读取循环日期的数据*/

$obsname=$myrow["obsname"];
$address=$myrow["address"];
$reporttime=$myrow["reporttime"];
$banci=$myrow["banci"];
$ifpass=$myrow["ifpass"];
$ifpass1=$myrow["ifpass1"];
$sfn=$myrow["sfn"];
$z_first=$myrow["z_first"];
$z_last=$myrow["z_last"];
$m_first=$myrow["m_first"];
$m_last=$myrow["m_last"];
$y_first=$myrow["y_first"];
$y_last=$myrow["y_last"];
/*读取循环日期的数据*/
。。。 。。。
/*使用经过计算的和读取的数据从第二个表里匹配,如果无匹配数据则插入,否则更新*/
$select_sql="select * from ".$reporttablename." where obsname='$obsname' and reporttime='$reporttime'";
$resultselects=@mysql_query($select_sql,$db);
if(mysql_num_rows($resultselects)==0){
$insert_sql="insert into 第二个数据表 (obsname,address, zfirst,zlast,zaverage,znum,mfirst,mlast,maverage,mnum,yfirst,ylast,yaverage,ynum,dengji, reporttime,banci) values('$obsname','$address','$end_z_first','$end_z_last','$zaverage','','$end_m_first','$end_m_last','$maverage','','$end_y_first','$end_y_last','$yaverage','','$dengji','$reporttime','$banci')";

}else{
$insert_sql="update 第二个数据表 set obsname='$obsname',address='$address', zfirst='$end_z_first',zlast='$end_z_last',zaverage='$zaverage',znum='',mfirst='$end_m_first',mlast='$end_m_last',maverage='$maverage',mnum='',yfirst='$end_y_first',ylast='$end_y_last',yaverage='$yaverage',ynum='',dengji='$dengji', reporttime='$reporttime',banci='$banci' where obsname='$obsname' and reporttime='$reporttime'";

}

$result=@mysql_query($insert_sql,$db);
/*使用经过计算的和读取的数据从第二个表里匹配,如果无匹配数据则插入,否则更新*/
}
}

问题就是,我循环的读第一个表数据,比如,2003-03-07这天有5条,我只能取每天的一条,怎么取得每天的所有条数信息用于下面程序?
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinxin1982 2005-03-16
  • 打赏
  • 举报
回复
select * from 第一个数据表 where to_days(now()) - to_days(reporttime) <= 30
这个好像用不到索引的..

是不是可以这样
select * from 第一个数据表 where reporttime <= to_days(now())- 30

没有试验过,只是想想中
blazingSnow 2005-03-16
  • 打赏
  • 举报
回复
while($myrow=mysql_fetch_array($result))!!!!
你这样做效率太差了!
kozzi 2005-03-16
  • 打赏
  • 举报
回复
:)
keaizhong 2005-03-14
  • 打赏
  • 举报
回复
取得30天内的数据可以用更简单的方法。
select * from 第一个数据表 where to_days(now()) - to_days(reporttime) <= 30
superxs 2005-03-13
  • 打赏
  • 举报
回复
果然是我自己晕了
superxs 2005-03-13
  • 打赏
  • 举报
回复
恩,答案就是 最后的 $result=@mysql_query($insert_sql,$db);和最前面的读取的记录集$result重复,改个名字就OK了

21,886

社区成员

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

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