ホームページ > バックエンド開発 > 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 ' と 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); = $ cha-&gt; fetch_assoc()){
"、" gbk "、$ ming); // winプラットフォームでエンコードを変換します。
$wei='../txt/'.$ming.'.txt';//生成パスを設定します。
$weizhi=fopen($wei,'w')or die("ファイルを開けません");
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 ' と 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); = $cha->fetch_assoc()){
","GBK",$ming);//WIN プラットフォームでエンコーディングを変換します。
$wei='../txt/'.$ming.'.txt';//生成パスを設定します。 H $ weizhi = FOPEN ($ wei, 'w') or die ("caner open file"); >close();

$row['neirong'] を使用しない場合は記事になりますこのカテゴリの下で、それをループして変数に割り当てます。変数をドットで接続し、1 つの変数にまとめてから、TXT テキスト コンテンツに割り当てます。他の方法があるかどうかはわかりません

このように $neirong.=$row['neirong']; を書くことはできないわけではありません
ただし、$neirong には初期値がないため、すべてのクエリ結果は次のようになります。追加され、最終的にはメモリ不足により失敗する可能性があります
言うまでもなく、記事をカテゴリ別に分類するという本来の目的を満たしていません

主な問題は $mysqli->close(); です
データベースを閉じました$xiaoID ≠ $ daID の場合、外側のループでの接続は $cha=$mysqli->query($chaming); の 2 ラウンド目で失敗します

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート