这个不会写,求教!!

cntoca2020 2016-11-30 03:43:32
有个表存放分类: id section,有个表存放分类下面的文章:id sectionid text。

要实现按类别生成josn存在文件里。但是for while 了很久,还是不行。输出总有问题,比如他一条文章输出一条json,不按类别,或输出多条重复的。总之就是写不好。

附上初学者的代码:

$sqla = $pdo->prepare("SELECT * FROM `section` order by id");
$sqla->execute();
while ($rowa = $sqla->fetch()) {
$sid=$rowa["id"];
$section=$rowa["section"];
$sql = $pdo->prepare("SELECT * FROM `words` where sid='$sid'");
$sql->execute();
while ($row = $sql->fetch()) {
echo $sid."is";
print_r($row);
echo "<br/>";
echo $json=json_encode($row,JSON_UNESCAPED_UNICODE);
$myfile = fopen("../cache/".iconv("utf-8","gb2312",$section).".php", "a+") or die("Unable to open file!"); //w 重写 a追加
fwrite($myfile, $json);
fclose($myfile);

}
}
...全文
246 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2016-12-02
  • 打赏
  • 举报
回复
没看明白,最好有表原始数据,及希望得出的json数据 有个表存放分类: id section,有个表存放分类下面的文章:id sectionid text。 但你代码用的是sid,那sid是否就是sectionid,描述比较乱。 是否把某一个分类下的所有文章数据放入一个json呢?多个section就多个json文件,如果是可以这样写

$sqla = $pdo->prepare("SELECT * FROM `section` order by id asc");
 
$sqla->execute();
 
while ($rowa = $sqla->fetch()) {
 
    $sid=$rowa["id"];
    $section=$rowa["section"];
    $arr = array();
 
    $i=0;
     
    $sql = $pdo->prepare("SELECT * FROM `words` where sid='$sid'");
    $sql->execute();


    while($rowb = $sql->fetch()){
        $arr[] = $rowb;
    }
 
    $json=json_encode($arr,JSON_UNESCAPED_UNICODE);
    $myfile = fopen("../cache/".iconv("utf-8","gb2312",$section).".php", "a+") or die("Unable to open file!");  //w  重写  a追加 
    fwrite($myfile, $json); 
    fclose($myfile); 
 
    $i++;
}
cntoca2020 2016-12-01
  • 打赏
  • 举报
回复
有人吗?
cntoca2020 2016-11-30
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
你想得到什么样的结果?
谢谢
cntoca2020 2016-11-30
  • 打赏
  • 举报
回复
$sqla = $pdo->prepare("SELECT * FROM `section` order by id asc");

$sqla->execute();

while ($rowa = $sqla->fetch()) {

$sid=$rowa["id"];
$section=$rowa["section"];


$i=0;

$sql = $pdo->prepare("SELECT * FROM `words` where sid='$sid'");
$sql->execute();
$row = $sql->fetch();
$arr[] = $row;



$json=json_encode($arr,JSON_UNESCAPED_UNICODE);
$myfile = fopen("../cache/".iconv("utf-8","gb2312",$section).".php", "a+") or die("Unable to open file!"); //w 重写 a追加
fwrite($myfile, $json);
fclose($myfile);

$i++;
}


修改了一下,但还不正确。


希望得到的效果是:sid=1,下面的文章集合成一个json。sid=2,下面的文章集合成另一个json。


上面这个我看逻辑也对,就是得不到正确的结果。


得到结果如下:



输出json , sid一次是7,8,9,和我希望的sid都是7的文章不相符。
xuzuning 2016-11-30
  • 打赏
  • 举报
回复
你想得到什么样的结果?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧