喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
     
标题: [问题] 一个循环,有问题,不知在哪,总是执行超过30秒  
 
jingangel
中级会员
Rank: 3Rank: 3


UID 72698
精华 0
积分 366
帖子 254
金钱 366 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-5-2
来自 山西
状态 离线
[广告]: q m
一个循环,有问题,不知在哪,总是执行超过30秒

//如果传过来的参数是all的话,则全部文章生成静态
if($url == "all")
{
        $sql="select * from article";
        $rs = mysql_query($sql);
        $articlenum = mysql_num_rows($rs);
        $row = mysql_fetch_array($rs);
        $columnid = $row["columnid"];       
       
        for($i=1; $i<$articlenum; $i++)
        {
                $sql1="select * from article where articleid = $i";
                $rs1 = mysql_query($sql1);
                $row1 = mysql_fetch_array($rs1);
                $columnid = $row1["columnid"];
       
                $sql2 = "select * from article where columnid = $columnid";
                $rs2 = mysql_query($sql2);
                $columnnum = mysql_num_rows($rs2);
                for($j=1,$columnid = $row1["columnid"]; $j<$columnnum; $j++)
                {
                        $articleid = $i;

                        $s_fname = "contentword.php";
                        $o_fname = "article/$articleid.htm";

                        ob_start();
                        include($s_fname);
                        $buffer = ob_get_contents();
                        $buffer = eregi_replace("include","../include",$buffer);
                        $buffer = eregi_replace("images/left.gif","../images/left.gif",$buffer);
                        $buffer = eregi_replace("images/left_bg.gif","../images/left_bg.gif",$buffer);
                        $buffer = eregi_replace("images/folder-.gif","../images/folder-.gif",$buffer);                                               
                        ob_end_clean();
                        $fp = fopen($o_fname,"w");
                        fwrite($fp,$buffer);
                        fclose($fp);
                }
        }
//                        echo "生成<a href=$o_fname target=right>$o_fname</a>成功!<a href='admin/$url' target=right>返回</a><br>";
                        echo "生成全部$articlenum个文章成功!<a href='admin/$url' target=right>返回</a><br>";

}




阳光女人 装饰·家
2007-12-12 11:05 AM#1
查看资料  Blog  发短消息  QQ  顶部
 
冰雪风谷
新手上路
Rank: 1



UID 97851
精华 0
积分 31
帖子 30
金钱 31 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-9-1
状态 离线
[推荐阅读] 在北京我能混吗?
能优化下你的算法吗?
2007-12-12 02:49 PM#2
查看资料  发短消息  顶部
 
wish2000
新手上路
Rank: 1


UID 98226
精华 0
积分 32
帖子 24
金钱 32 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-9-8
状态 离线
[推荐阅读] [猎头]上海某跨国公司中国软件研发中心高薪急招C++开发工程师
for($i=1; $i<$articlenum; $i++) 和 where articleid = $i";本身就有问题·~
用while来循环记录




跌倒了,爬起来再哭~~
本人博客http://blog.vwen.com/
2007-12-12 03:11 PM#3
查看资料  访问主页  发短消息  QQ  顶部
 
tianfing
金牌会员
Rank: 6Rank: 6
天常的小孩


UID 37514
精华 0
积分 1241
帖子 426
金钱 1240 喜悦币
威望 0
人脉 1
阅读权限 70
注册 2004-10-22
状态 离线
[推荐阅读] 想找点事情做做!
把人都搞晕了!



希望有一天,能够纯洁的爱上一个人!
QQ:285922205
我来玩 网页游戏
http://www.wlwan.com
2007-12-12 05:54 PM#4
查看资料  发短消息  顶部
 
psdshow
金牌会员
Rank: 6Rank: 6
论坛元老



UID 30908
精华 0
积分 1781
帖子 1381
金钱 1781 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-9-6
来自 永州-廣州
状态 离线
[推荐阅读] c 哪个效率高
如果文章多的话
何止三十秒?

建议部分生成,然后将执行到的id传给下一个执行




以下AD由PHPX赞助:
广州梦莎五金饰品厂 东莞恒隆五金饰品厂 承接php私活
2007-12-12 06:14 PM#5
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
飞豹游侠
高级会员
Rank: 4
超高级会员



UID 27267
精华 0
积分 776
帖子 1047
金钱 776 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2004-3-26
来自 沈阳
状态 离线
[推荐阅读] PK价格网招聘技术大拿
ob_start 好像不能用于循环中吧?

我前几天写个程序,在循环中使用了ob_start,总是失败.第二次以后的循环不执行了.

你要改用模板做.

最简单的模板,就是单纯的替换变量法
$content = file_get_contents('your_template_file.html');
$content = str_replace('{news_title}', $news_title, $content);
$content = str_replace('{news_content}', $news_content, $content);
$content = str_replace('{xxxxx}', $xxxxx, $content);

然后把$content再写入静态页文件中.

想一次性生成所有的文件,如果数据多,极占用服务器资源
如果服务器的安全模式safe_mode设置为Off的话,可以在程序最上面加上:
set_time_limit(0);
如果是安全模式是On的话,那就是只一次执行几条数据.




我发现我越来越菜,怎么办啊...
家长网
龙之剑,深圳民间反扒队,欢迎加入
2007-12-12 06:44 PM#6
查看资料  访问主页  发短消息  QQ  顶部
 
my.com.net
中级会员
Rank: 3Rank: 3


UID 90379
精华 0
积分 358
帖子 282
金钱 358 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2007-3-29
状态 离线
[推荐阅读] foreach while 比较,哪个好用点?
你for{}里还有for{} 这能好吗?

分开写成两个函数吧,应该比你那样循环好




一又二分之一许愿吧
2007-12-12 07:32 PM#7
查看资料  访问主页  发短消息  QQ  顶部
 
冰雪
新手上路
Rank: 1



UID 103297
精华 0
积分 3
帖子 48
金钱 3 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-12-11
状态 离线
[推荐阅读] cu的聚会,有兴趣的报名
好像写的有点复杂
2007-12-13 08:41 AM#8
查看资料  发短消息  顶部
 
changxiaob
注册会员
Rank: 2


UID 92575
精华 0
积分 88
帖子 147
金钱 88 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2007-5-6
状态 离线
[推荐阅读] 【代友发】酷客音乐网招聘
如果文章多~~只有跑死了
解决:1。修改PHP。INI把运行限制时间弄长点(不过很容易把系统弄崩溃)
2。把参数$i传递到下一个页面(每个页面只生成1个静态。)
3。如 Discuz和PHPBB等论坛系统一样,在调用页面前判断静态是否存在和过期,再生成/调用页面
2007-12-13 11:22 AM#9
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 3.674951 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP