首页 > 后端开发 > php教程 > 按ID 循环出 类别,类别再循环属于这个类别下的文章了。

按ID 循环出 类别,类别再循环属于这个类别下的文章了。

WBOY
发布: 2016-06-23 14:09:08
原创
982 人浏览过

$xiaoID=$_POST['xsId_xiao'];//POST最小ID$daID=$_POST['xsId_da'];//POST最大ID$chaId="select * from xs where Id>='$xiaoID' and sId<='$daID'";$rsID=$mysqli->query($chaId);while($rs=$rsID->fetch_assoc()){    $ming=$rs['leiming'];//循环出类名;    $chaming="select * from shitu where toming='$ming'";    $cha=$mysqli->query($chaming);    while($row=$cha->fetch_assoc()){        $neirong.=$row['neirong'];//如这个类下很多文章,使用 $neirong. 连接起来    }    $ming=iconv("UTF-8","GBK",$ming);//在WIN平台下转编码。    $wei='../txt/'.$ming.'.txt';//设置生成路径。    $weizhi=fopen($wei,'w')or die("can't open file");    fwrite($weizhi,$neirong);//生成    fclose($weizhi);    $mysqli->close();}
登录后复制


功力只能想到这些了。想不出来怎么处理,错误了。求修改。

1:按ID 从小到大 循环出类名,
2:在循环类名下所有文章,
3:把一个类下所有文章生成为一个TXT。


回复讨论(解决方案)

既然错误了,为什么不贴出错误。


既然错误了,为什么不贴出错误。

他没错误呢。提交过去是空白。IE提示500错误。

php.ini 中令 display_errors=On
然后重启服务器运行看看

php.ini 中令 display_errors=On
然后重启服务器运行看看

呵呵,一样是500错误。

什么环境?清一下缓存看看。firefox 测试如何?

套红的部分有问题!
$xiaoID=$_POST['xsId_xiao'];//POST最小ID
$daID=$_POST['xsId_da'];//POST最大ID
$chaId="select * from xs where Id>='$xiaoID' and sId<='$daID'";
$rsID=$mysqli->query($chaId);
while($rs=$rsID->fetch_assoc()){
$ming=$rs['leiming'];//循环出类名;
$chaming="select * from shitu where toming='$ming'";
$cha=$mysqli->query($chaming);
while($row=$cha->fetch_assoc()){
$neirong.=$row['neirong'];//如这个类下很多文章,使用 $neirong. 连接起来
}
$ming=iconv("UTF-8","GBK",$ming);//在WIN平台下转编码。
$wei='../txt/'.$ming.'.txt';//设置生成路径。
$weizhi=fopen($wei,'w')or die("can't open file");
fwrite($weizhi,$neirong);//生成
fclose($weizhi);

$mysqli->close();
}

套红的部分有问题!
$xiaoID=$_POST['xsId_xiao'];//POST最小ID
$daID=$_POST['xsId_da'];//POST最大ID
$chaId="select * from xs where Id>='$xiaoID' and sId<='$daID'";
$rsID=$mysqli->query($chaId);
while($rs=$rsID->fetch_assoc()){
$ming=$rs['leiming'];//循环出类名;
$chaming="select * from shitu where toming='$ming'";
$cha=$mysqli->query($chaming);
while($row=$cha->fetch_assoc()){
$neirong.=$row['neirong'];//如这个类下很多文章,使用 $neirong. 连接起来
}
$ming=iconv("UTF-8","GBK",$ming);//在WIN平台下转编码。
$wei='../txt/'.$ming.'.txt';//设置生成路径。
$weizhi=fopen($wei,'w')or die("can't open file");
fwrite($weizhi,$neirong);//生成
fclose($weizhi);

$mysqli->close();
}

假如不使用 $row['neirong'] 就是这个类别下的1个文章,循环出来赋值给1个变量,使用变量加点连接起来,集合成一个变量,然后赋值为一个TXT文本内容,我想不到更好的办法。不知道还有其他办法不?

不是说不能 $neirong.=$row['neirong']; 这样写
而是由于 $neirong 没有初值,导致所有的查询结果都会被附加在其中,最终可能因内存不足而失败
何况也不符合你文章按类别归类的初衷

主要的问题在 $mysqli->close();
你是在外层循环中关闭数据库连接的,当 $xiaoID ≠ $daID 时将造成第二轮的 $cha=$mysqli->query($chaming); 失败

如果没有开启php的错误显示功能,则会导致web服务器出现500错

这样写就可以了

$sql = "select * from xs, shitu where xs.leiming=shitu.toming and xs.Id>='$xiaoID' and xs.sId<='$daID'";$rsID=$mysqli->query($sql);while($rs=$rsID->fetch_assoc()){  $ming=$rs['leiming'];//循环出类名;  $ming=iconv("UTF-8","GBK",$ming);//在WIN平台下转编码。  $wei='../txt/'.$ming.'.txt';//设置生成路径。  file_put_contents($wei, $rs['neirong'], FILE_APPEND);}$mysqli->close();
登录后复制
 

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板