Php MySQL何处没有';我不能正常工作

Php MySQL何处没有';我不能正常工作,php,mysql,select,Php,Mysql,Select,我有一个category.php页面,显示给定类别($tagname)中的所有文章,其中enabled=1。当一篇文章只有一个标签(和两个空标签)时,一切都很好。本文将显示在此category.php页面上(启用时设置为1)。但是,如果至少填充了两个标记,则文章将显示在category.php页面上,其中tag2=$tagname或tag3=$tagname-无论启用字段包含什么(1表示启用,2表示禁用) 底线-为什么即使该文章的enabled设置为2,它也会显示 SELECT * FROM a

我有一个category.php页面,显示给定类别($tagname)中的所有文章,其中enabled=1。当一篇文章只有一个标签(和两个空标签)时,一切都很好。本文将显示在此category.php页面上(启用时设置为1)。但是,如果至少填充了两个标记,则文章将显示在category.php页面上,其中tag2=$tagname或tag3=$tagname-无论启用字段包含什么(1表示启用,2表示禁用)

底线-为什么即使该文章的enabled设置为2,它也会显示

SELECT *
FROM articles
WHERE enabled=1
  AND tag1='$tagname'
  OR tag2='$tagname'
  OR tag3='$tagname'

enabled, int
tag1, varchar(30)
tag2, varchar(30)
tag3, varchar(30)
谢谢

试试这个:

SELECT *
FROM articles
WHERE enabled=1
  AND (tag1='$tagname'
       OR tag2='$tagname'
       OR tag3='$tagname')
试试这个:

SELECT *
FROM articles
WHERE enabled=1
  AND (tag1='$tagname'
       OR tag2='$tagname'
       OR tag3='$tagname')
使用此查询

SELECT *
FROM articles
WHERE enabled=1
  AND (tag1='$tagname'
       OR tag2='$tagname'
       OR tag3='$tagname')
使用此查询

SELECT *
FROM articles
WHERE enabled=1
  AND (tag1='$tagname'
       OR tag2='$tagname'
       OR tag3='$tagname')

试着把你的情况分开

SELECT *
FROM articles
WHERE enabled=1
  AND (tag1='$tagname'
       OR tag2='$tagname'
       OR tag3='$tagname')

因此,现在将是check result where enabled=1和任何标记结果true from 3

尝试分离您的条件

SELECT *
FROM articles
WHERE enabled=1
  AND (tag1='$tagname'
       OR tag2='$tagname'
       OR tag3='$tagname')

因此,现在它将是check result,其中enabled=1,并且从3开始的任何标记结果都具有比
更高的优先级,因此在您的查询中

首先计算
enabled=1和tag1='$tagname'
,然后计算
将其结果与next
表达式等进行比较…
除非正确地将
条件与
条件分开,否则输出将是意外的

更改您的查询,如下所示:

SELECT * FROM articles 
 WHERE enabled=1 
   AND (tag1='$tagname' OR tag2='$tagname' OR tag3='$tagname')

请参考

优先于
,因此在您的查询中

首先计算
enabled=1和tag1='$tagname'
,然后计算
将其结果与next
表达式等进行比较…
除非正确地将
条件与
条件分开,否则输出将是意外的

更改您的查询,如下所示:

SELECT * FROM articles 
 WHERE enabled=1 
   AND (tag1='$tagname' OR tag2='$tagname' OR tag3='$tagname')

请参阅

谢谢您的帮助!它现在可以正常工作了!:)(tag1='$tagname'或tag2='$tagname'或tag3='$tagname')感谢您的帮助!它现在可以正常工作了!:)(tag1='$tagname'或tag2='$tagname'或tag3='$tagname')