我有一张桌子,里面有或多或少的博客文章。结构如下:
- id INT 主键 AUTO_INCREMENT
- 用户 VARCHAR
- 标题 VARCHAR
- 类别 VARCHAR
- 部分 VARCHAR
- post_body 文本
- post_date DATETIME
部分字段基本上是一个子类别。我有第二个表的部分:
- id INT 主键 AUTO_INCREMENT
- section_name VARCHAR
- 类别 VARCHAR
我一直在尝试做的是在页面上创建一个列表,其结构如下:
科学(这是类别)
地质学(本第一节)
标题1
标题2
标题3
ETC
生物学(第二部分)
标题1
标题2
标题3
ETC
等等,适用于所有科学类别的部分
当用户单击以查看科学类别中的文章时,他们会进入此页面。
我已经尝试了很多事情来实现这一点,但都没有成功。获取要显示的部分名称很容易,但是根据从第一个查询中检索到的部分对所有文章标题进行查询是我卡住的地方,所以这是我的代码:
if(isset($_GET['cat'])){
    $cat = preg_replace('#[^a-z0-9_]#i','',$_GET['cat']);
    $cat = str_replace('_',' ',$_GET['cat']);
    $stmt = $db->prepare("SELECT section_name FROM sections WHERE category=:cat GROUP BY section_name");
    $stmt->bindValue(':cat',$cat,PDO::PARAM_STR);
    try{
        $stmt->execute();
    }
    catch(PDOException $e){
        echo $e->getMessage();
        $db = null;
        exit();
    }
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        $sectionName = $row[section_name];
    }
}