百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[闲聊畅谈] 请教个php循环的问题 [复制链接]
查看:2594 | 回复:5

落伍网友
落伍网友  发表于 2015-5-15 20:58:33 |阅读模式 来自 中国江苏南通
100积分
程序中start_time开始时间,end_time结束时间,我设置开始时间是20时,结束时间是21时我20:43:16运行这个程序,为什么"程序开始运行4……"这个循环了12次?

运行结果是
  1. 程序开始运行……程序开始运行2……程序开始运行3……程序开始运行4……程序开始运行4……程序开始运行4……程序开始运行4……程序开始运行4……程序开始运行4……程序开始运行4……程序开始运行4……程序开始运行4……程序开始运行4……程序开始运行4……程序开始运行4……更新栏目开始……更新栏目结束……2015-05-15 20:43:16
复制代码
  1. echo("\n程序开始运行……");
  2. //$dsql1 = new DedeSql(false);
  3. $query = "select * from `#@__check_time`";
  4. //$dsql1->Execute('me',$query);
  5. echo("程序开始运行2……");
  6. $dsql->SetQuery($query);//将SQL查询语句格式化
  7. $dsql->Execute();//执行SQL操作
  8. $makeall=0;
  9. echo("程序开始运行3……");
  10. while($row1 = $dsql->GetArray())
  11. {
  12.     echo("程序开始运行4……");
  13.     $now = time();
  14.         $date = getdate($now);
  15.         $hours = $date[hours];
  16.   if($hours>=$row1['start_time'] and $hours<$row1['end_time'])
  17.   {
  18.   echo("程序开始运行5……");
  19.    
  20.     $interval = ($row1['end_time'] - $row1['start_time']) * 3600;
  21.         if($now - $row1['check_time'] > $interval)
  22.         {
  23.             echo("程序开始运行6……");
  24.                 $amount = $row1['amount'];
  25.                
  26.                 $addsql = "";
  27.                 $qstr = "";
  28.                 //$dsql2 = new DedeSql(false);
  29.                
  30.                 if($row1['lmorzs'] == 0 and $row1['typeid'] != 0 and $amount) //按照栏目更新
  31.                 {
  32.                   //  ShowMsg("1");
  33.                     echo("按照栏目更新开始运行……");
  34.                         $query = "select id,typeid from `#@__archives` where arcrank=-1 order by typeid,id";
  35.                         $dsql->SetQuery($query);//将SQL查询语句格式化
  36.             $dsql->Execute();//执行SQL操作
  37.                         $typeid_now = -2;
  38.                         while($row2 = $dsql->GetArray())
  39.                         {
  40.                           if($typeid_now !=  $row2['typeid'])
  41.                           {
  42.                                  $typeid_now = $row2['typeid'];
  43.                                  $count = 1;
  44.                           }
  45.                           else $count++;
  46.                           if($count <= $amount)
  47.                           {
  48.                                   if($qstr == "") $qstr = $row2['id'];
  49.                           else $qstr = $qstr."`".$row2['id'];
  50.                           }
  51.                         }
  52.                 }
  53.                 //elseif(!$amount) //更新所有的文档
  54.                 //{
  55.                 // ShowMsg("1");
  56.                  //echo("更新所有的文档开始运行……");//自己修改,禁止全部更新,防止程序运行错误。
  57.                  //$makeall=1;
  58.                 //}
  59.                 else //按照总数更新
  60.                 {
  61.                     echo("按照总数更新开始运行……");
  62.                         if($row1['typeid']) $addsql = " and typeid=".$row1['typeid'];
  63.                         $query = "select id from `#@__archives` where arcrank=-1 $addsql limit 0,$amount";
  64.                         $dsql->SetQuery($query);//将SQL查询语句格式化
  65.             $dsql->Execute();//执行SQL操作
  66.                
  67.                         while($row2 = $dsql->GetArray())
  68.                         {
  69.                           if(!$qstr) $qstr = $row2['id'];
  70.                           else $qstr = $qstr."`".$row2['id'];
  71.                         }
  72.                        
  73.                 }
  74.                
  75.         if($qstr != "" or $makeall)
  76.         {
  77.         //ShowMsg("$qstr");//测试
  78.                 //审核更新文档开始
  79.                 echo("审核更新文档开始运行……");
  80.                 $is_check = 1;
  81.                 $maxpagesize = $row1['maxpagesize'];
  82.                 $arcids = ereg_replace('[^0-9,]','',ereg_replace('`',',',$qstr));
  83.                 if($makeall){
  84.                   $query = "Select arc.id,arc.typeid,ch.issystem,ch.maintable,ch.addtable From `#@__arctiny` arc
  85.                                 left join `#@__arctype` tp on tp.id=arc.typeid
  86.                                 left join `#@__channeltype` ch on ch.id=tp.channeltype where arc.arcrank=0";
  87.                                 //ShowMsg("1");
  88.             }
  89.             else
  90.                 {
  91.                  $query = "Select arc.id,arc.typeid,ch.issystem,ch.maintable,ch.addtable From `#@__arctiny` arc
  92.                                 left join `#@__arctype` tp on tp.id=arc.typeid
  93.                                 left join `#@__channeltype` ch on ch.id=tp.channeltype
  94.                                 where arc.id in($arcids) ";
  95.             }
  96.                 $dsql->SetQuery($query);
  97.                 $dsql->Execute('ckall');
  98.                 $typediarr = array();
  99.        
  100.                 while($row = $dsql->GetArray('ckall'))
  101.                 {
  102.                         if (!in_array($row['typeid'],$typediarr))
  103.                         {
  104.                            array_push($typediarr,$row['typeid']);
  105.                            $query = "Select reid,topid From `#@__arctype` where id=".$row['typeid'];
  106.                            $row3 = $dsql->GetOne($query);
  107.                            if (!in_array($row3['reid'],$typediarr) and $row3['reid']!=0) array_push($typediarr,$row3['reid']);
  108.                            if (!in_array($row3['topid'],$typediarr) and $row3['topid']!=0) array_push($typediarr,$row3['topid']);
  109.                         }
  110.                         $aid = $row['id'];
  111.                         $maintable = ( trim($row['maintable'])=='' ? '#@__archives' : trim($row['maintable']) );
  112.                         $dsql->ExecuteNoneQuery("Update `#@__arctiny` set arcrank='0' where id='$aid' ");
  113.                         if($row['issystem']==-1)
  114.                         {
  115.                                 $dsql->ExecuteNoneQuery("Update `".trim($row['addtable'])."` set arcrank='0' where aid='$aid' ");
  116.                         }
  117.                         else
  118.                         {
  119.                                 $dsql->ExecuteNoneQuery("Update `$maintable` set arcrank='0',pubdate='$now',sortrank='$now' where id='$aid' ");
  120.                         }
  121.                         $pageurl = MakeArt($aid,false);
  122.                 }//while
  123.                 //审核更新文档结束
  124.                 echo("审核更新文档结束运行……");
  125.                 //更新主页
  126.                 echo("更新主页运行……");
  127.                 $GLOBALS['_arclistEnv'] = 'index';
  128.                 $row = $dsql->GetOne("Select * From `#@__homepageset`");
  129.                 $row['templet'] = MfTemplet($row['templet']);
  130.                 $pv = new PartView();
  131.                 $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
  132.                 $pv->SaveToHtml(DEDEROOT.'/index.html');
  133.                 //更新主页
  134.                
  135.                 $query = "Update `#@__check_time` set check_time=$now where id='".$row1['id']."' "; //更新审核时间
  136.                 echo("更新审核时间……");
  137.             $dsql->ExecuteNoneQuery($query);
  138.         //ShowMsg("1");
  139.                
  140.         }//if
  141.        

  142.         }//if
  143.   }//if
  144. }//while
  145. //更新栏目开始
  146. echo("更新栏目开始……");
  147. if($is_check == 1)
  148. {
  149.     require_once(DEDEROOT."/data/cache/inc_catalog_base.inc");
  150.     require_once(DEDEINC."/channelunit.func.php");
  151.         require_once(DEDEINC."/arc.listview.class.php");
  152.         foreach($typediarr as $typeid)
  153.         {
  154.             $lv = new ListView($typeid);
  155.         //$reurl = $lv->MakeHtml();
  156.                 $reurl = $lv->MakeHtml(1,$maxpagesize);
  157.         }

  158. }       
  159. //更新栏目结束
  160. echo("更新栏目结束……");
  161. echo $showtime=date("Y-m-d H:i:s");
  162.   AjaxHead();
复制代码

最佳答案

查看完整内容

你这行中是数据库循环读数据。你数据库里有几条记录就会出来几条"程序开始运行4……"
回复

使用道具 举报

29

主题

3216

帖子

1万

积分

落伍者(四季发财)

QQ:8282667

Rank: 4

贡献
2861
鲜花
26
注册时间
2005-3-14

QQ绑定落伍微信绑定落伍者落伍手机绑定

发表于 2015-5-15 20:58:34 | 显示全部楼层 来自 中国北京
  1. while($row1 = $dsql->GetArray())
复制代码
你这行中是数据库循环读数据。你数据库里有几条记录就会出来几条"程序开始运行4……"
伪善的人来了又走只顾吃穿
回复

使用道具 举报

384

主题

2244

帖子

3480

积分

落伍者(两全齐美)

Rank: 2

贡献
2045
鲜花
19
注册时间
2008-10-24
发表于 2015-5-15 22:34:33 | 显示全部楼层 来自 LAN
说明你while循环了12次,数组里面有12条数据, 不知道你数据表中的内容,无法详细判断,,

在这里,你贴这么大一堆代码,除我没人看的。









我也没看完。
回复

使用道具 举报

1368

主题

1万

帖子

490

积分

落伍者(一心一意)

Rank: 1

贡献
2488
鲜花
194
注册时间
2009-4-19

落伍手机绑定

发表于 2015-5-15 22:46:54 | 显示全部楼层 来自 中国安徽黄山
while($row1 = $dsql->GetArray())
我屮艸芔茻
回复

使用道具 举报

1309

主题

9124

帖子

1万

积分

落伍者(四季发财)

匿名,我们更专业。

Rank: 4

贡献
4503
鲜花
103
注册时间
2007-3-12

落伍者QQ绑定落伍手机绑定

发表于 2015-5-15 22:59:35 | 显示全部楼层 来自 中国福建泉州
@老狗  
付费签名:淘宝优惠券
个人签名:普鲁士精神永不灭
回复

使用道具 举报

落伍网友
落伍网友  发表于 2015-5-16 09:55:11 来自 中国江苏南通
小闲云野鹤 发表于 2015-5-15 20:58
你这行中是数据库循环读数据。你数据库里有几条记录就会出来几条"程序开始运行4……"

谢谢楼上的所有人,特别是您,您真好,总是认真的回答别人的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-11-25 23:53 , Processed in 0.065057 second(s), 32 queries , Gzip On.

返回顶部