我从来没有使用过Inner join。我想,一切都是新的东西。
我会解释我的问题:
我有两个表到mysql,一个叫category
,第二个是post
,所有类别名称/行都在表category
中,与该类别相关的帖子在{ {1}}我举了一个类别名称和帖子的例子。
我用于ex的类别名称:Test
与类别post
相关的帖子的ID为Test
,因此链接将为
1
当我将网址中的/category.php?nameID=Test&id=1
替换为ex时,此网址会显示表格ID 1
的行post
中的内容。 Test
Hello
我仍然从表/category.php?nameID=Hello&id=1
收到我不想要的ID 1
内容,因为帖子计数post
与ID 1
的类别我希望收到类似Hello
以下是This post doesn't exist in this category.
的mime代码:
现在出现此错误&id=
Unknown column 'Test' in 'where clause'
答案 0 :(得分:2)
此代码存在多个问题,首先, 正如亚历山大所指出的那样,你的数据不会被转义。
您正在将Test直接传递给查询,这意味着查询不将其视为字符串(它期望列名称),您可以通过在变量周围添加引号来解决此问题(' $ id& #39)。即使您已将其转义,查询也需要引号将其标识为字符串。
如果您想要内部联接,语法将如下所示:
"SELECT * FROM category INNER JOIN post ON category.name = post.cat WHERE post.cat = '" .$naamID "'"
这实际上告诉DB,我想要类别AND post中的所有列,将category.name视为与post.cat相同的东西,并且只检索post.cat = whatever的行。 (注意,如果你输入category.name而不是它会做同样的事情,因为内连接合并了两个)。