十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用嵌套循环
专注于为中小企业提供成都网站制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业滕州免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
$exec0="select * from 表B";
$result0=mysql_query($exec0);
while($rs0=mysql_fetch_object($result0))
{
$category_name=$rs0-category_name;
echo $category_name."brbrbr"; //输出B表中的商品类型
$exec1="select * from 表A where category_name=".$category_name; //查询条件设为A表中的商品类型等于B表中的商品类型
$result1=mysql_query($exec1);
while($rs1=mysql_fetch_object($result1))
{echo $rs1-product_category."br"; } //循环输出A商品中属于B表商品类型的商品名
}
你用网页的方式,让人点击,服务器采集,简直是弱爆了。每个人的点击循环1000次,来个100人同时点,你要用的是普通的虚拟机就不行了。
最好是换种方式实现,不要通过网页进行采集。
可以非常简单的在数据库的表,创建一个采集队列,后台执行一个crontab的计划任务,去完成队列里的采集任务。
方法1: 用file_get_contents 以get方式获取内容
[php] view plaincopyprint?
?php
$url='';
$html = file_get_contents($url);
echo $html;
?
方法2: 用fopen打开url, 以get方式获取内容
[php] view plaincopyprint?
?php
$fp = fopen($url, 'r');
//返回请求流信息(数组:请求状态,阻塞,返回值是否为空,返回值http头等)
[php] view plaincopyprint?
stream_get_meta_data($fp);
[php] view plaincopyprint?
while(!feof($fp)) {
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);
?
1.用js的setInterval+ajax来请求,PHP里面加条件判断是否成功;
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);
?