1.用js的setInterval+ajax来请求,PHP里面加条件判断是否成功;
赤壁网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
2.用PHP递归循环来做,如:
?php
function test($url)
{
echo $url.'\t\n--------';
$r = @file_get_contents($url);//我这里返回的是页数,如果没有下一页的时候返回0,停止执行
echo $r;
if($r 0)
{
$url = ''.$r;
test($url);
}
else
{
echo 'fail';
}
}
$url = '';
$res = test($url);
?
5万条?
恐怖,php执行是有一个时间的,不是无止境的执行,超时后,就会停止执行。所以返回有多有多有少了!
解决方法:
1、有个函数是设定php脚本执行超时时间的,加在文件的头部,你设定多久就多久,具体哪个函数,忘记了,自己百度一下
2、修改php,.ini里面的配置,具体也忘记了,自己百度一下
不过不建议你一个页面返回这么多数据,就算能全部返回,也网页打开速度也会很慢啊,搞成分页显示,不是很好吗!@
我们在使用PHP递归时,会遇到各种各样的问题,其中比较令人苦恼的是有关PHP递归返回值时出现的问题。其实细细想想这是一个很简单的问题。可就是这个简单的问题困扰了半个下午。问题出在递归函数的返回值上。
这是开始写的:
代码如下:
?php
function test($i)
{
$i -= 4;
if($i 3)
{
return $i;
}
else
{
test($i);
}
}
echo test(30);
?
这段代码看起来没有问题,其实有else里面是有问题的。在这里执行的test没有返回值。所以虽然满足条件$i 3时 return $i整个函数还是不会返回值的。对上面的PHP递归返回值函数做如下修改:
代码如下:
?php
function test($i)
{
$i -= 4;
if($i 3)
{
return $i;
}
else
{
return test($i); //增加return, 让函数返回值
}
}
echo test(30);
?
以上代码示例就是PHP递归返回值出现问题时的具体解决方法。
第一,没有选择数据库,在连接数据库后添加mysql_select_db("数据库名");
第二、我感觉不代码不全吧,因为我拷下来看了一下,少一},当然上面那个没少,补充的少了。
第三、还有没看出这个$ii是干什么用的。
第四、没感觉$selec=0与不等于0输出有什么不同。
第五、以后最好是把html代码与程序分开写。
因为不知道需求,只能根据你的程序简单修改如下:
?php
function TreeMenu($selec) {
$Conn=mysql_connect("localhost","kk","kk123");
mysql_select_db("数据库名");
$ii=1;
$sql="select * from tvmenu where bid=".$selec;
$result=mysql_query($sql,$Conn);
$str = "";
while($row =mysql_fetch_array($result)) {
if($selec=0) {
$str = 'option value="'.$row['id'].'"'.$row['name'].'/option ';
}else {
$str = 'option value="'.$row['id'].'"'.$row['name'].'/option ';
}
echo $str;
$ii++;
TreeMenu($row['id']);
$ii--;
}
}
?
select name="bid" id="bid"
?php
TreeMenu(0);
?
/select
不一定是1000,可能多可能少,跟你的PHP版本还有安装的操作系统有关,在到达一定次数的递归时候,php会自动杀掉这个function,而且不返回任何error,你这个连接错误应该是HTTP 500吧,那就是没到php规定的递归次数,但是你服务器的stack已经满了,结果php进程崩溃,返回500。。
没必要一次性查出100W条。每次请求3-5W数据update,分页用递归。
控制好变量内存,不要内存溢出。