Php 获取主题id上的类别
因此,我希望在主题的id上显示类别名称。 现在我有这个Php 获取主题id上的类别,php,mysql,Php,Mysql,因此,我希望在主题的id上显示类别名称。 现在我有这个 $cato = $db->prepare('SELECT topics.topic_cat, topics.topic_id, categories.cat_id, categories.cat_name
$cato = $db->prepare('SELECT
topics.topic_cat,
topics.topic_id,
categories.cat_id,
categories.cat_name
FROM
topics
LEFT JOIN
categories
ON
topics.topic_cat = categories.cat_id
WHERE
topics.topic_id =:topid');
$cato->bindParam(':topid', $row2["topic_id"], PDO::PARAM_INT);
$cato->execute();
$result2 = $cato->fetch();
类别。类别id
是类别的id
Categories.cat_name
是我想要的名称
Topics.topic\u cat
是发布主题的类别id(与categories.cat\u id中的id相同)
Topics.topic\u id
是主题的id(topic.php?id=28
)
我的成绩需要提高
主题28属于类别hello(hello=categories.cat\u name
)
因此,简而言之:主题id是28,它在主题中搜索具有topic\u id
28的行,并获取与topic\u id
28位于同一行的topic\u cat。然后在类别中查找并获取categories\u name
istopic\u cat
。然后发布categories\u name
我希望我足够清楚。你能试试:
SELECT topics.topic_cat,
topics.topic_id,
categories.cat_id,
categories.cat_name
FROM topics, categories
WHERE topics.topic_cat = categories.cat_id
AND topics.topic_id =:topid
除非你有没有类别的主题,否则这应该有效。你有没有未分类的主题?@makciook仅在索引中显示全部,如果你是这个意思的话?我想问的是,为什么你
将加入类别表,而不仅仅是加入?这意味着您要列出的主题中有一些没有类别ID。@makciook表示害怕。我不知道。在其他脚本仍然有效的情况下,join:x听起来很愚蠢,我知道如何根据您的代码显示结果(很抱歉我的问题),您可以执行$result2=$cato->fetch(PDO::fetch_ASSOC)
然后要获取类别名称,您需要echo$result2['cat\u name']
。如果对此不确定,则print\r($result2)
进行调试。获取致命错误:在第行$result2=$cato->fetch(PDO::fetch_ASSOC)中对非对象调用成员函数fetch()
这意味着查询失败,你能用phpmyadmin这样的工具调试上面的查询吗?它正在工作!只需将:topid
更改为变量$row2[“topic\u id”]
谢谢!