Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中selectmysql的问题_Php_Mysql - Fatal编程技术网

PHP中selectmysql的问题

PHP中selectmysql的问题,php,mysql,Php,Mysql,我得到了这个错误: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 接近’且idcat=00或idcat=11或idcat=4或idcat=8或idcat =10或第6行的idcat 我尝试在PHP上执行此查询 SELECT *, MATCH (name,description) AGAINST ('key') AS relevancia FROM offer WHERE MATCH (name,description)

我得到了这个错误:

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 接近’且idcat=00或idcat=11或idcat=4或idcat=8或idcat =10或第6行的idcat

我尝试在PHP上执行此查询

SELECT *,
        MATCH (name,description) AGAINST ('key') AS relevancia
  FROM offer
  WHERE
      MATCH (name,description)
          and idcat = 00
          OR idcat = 11
          OR idcat = 4
          OR idcat = 8
          OR idcat = 10
          OR idcat = 5
          OR idcat = 7
          OR idcat = 1
          OR idcat = 2
          OR idcat = 3
          OR idcat = 6
          OR idcat = 9
      AGAINST ('key')
  ORDER BY discount DESC
  LIMIT 0, 15
但是,如果我尝试直接在phpmyadmin上执行此查询,则效果很好。所以我不知道,如果是相同的咨询,为什么不在PHP上工作

顺便说一下,请原谅我的英语不好

编辑:

这是菲律宾领事馆

$sql2 = "SELECT *, 
MATCH (name,description) 
AGAINST ('$search')
AS relevancia 
FROM offer 
WHERE MATCH (name,description) AGAINST ('$search')  
and  $wheres $order $limit";

echo $sql2;
mysql_query("".$sql2."")  or die (mysql_error());
php在$sql2上的结果

SELECT *, MATCH (name,description) AGAINST ('key') AS relevancia 
FROM offer 
WHERE MATCH (name,description) AGAINST ('key') 
and idcat IN(00, 11, 4, 8, 10, 5, 7, 1, 2, 3, 6, 9) 
ORDER BY discount DESC LIMIT 0, 3
php mysql中的错误

You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax to
use near
'idcat IN(00, 11, 4, 8, 10, 5, 7, 1, 2, 3, 6, 9) ORDER BY discount DESC' at line 5
试试这个:

SELECT *, concat (name, relevance) AS relevancia 
FROM offer 
WHERE MATCH (name,description) AGAINST  ('key') 
and (idcat = '00' 
OR (idcat > 0 
and idcat<=11))
ORDER BY discount DESC LIMIT 0, 15
SELECT*,concat(名称、相关性)作为相关性
发盘
其中(名称、描述)与('key')匹配
和(idcat='00'
或(idcat>0
和idcat您不得在
idcat
上使用您的条件拆分该子句

首先完全执行其中一项,然后将其与另一项组合。即:

…其中(00,11,…)中的('key')和idcat匹配(名称,描述)
或:

…其中idcat输入(00,11,…)并将(名称,描述)与('key')匹配

注释:我使用MySQL的运算符作为<代码>的快捷方式(IDCAT=00或IDCAT=11或…)< /P>。< /P>如果您将代码> IDCAT//C>作为字符串类型,如<代码> =“00”< /代码>,则不等式。(

>0
如果
idcat=0
匹配将返回true…,我想我们需要表结构来帮助他…@jcho360:取决于
idcat
列的数据类型;在任何情况下,此答案中的任何内容都不会改变OP查询的逻辑(这是我试图添加到您的答案中的警告).是的,我喜欢你的答案,它比我的短,但我希望ditoje给我们提供表结构来帮助他。情况与以前一样,从phpmyadmin开始,它工作正常,但在php上执行此操作不起作用。咨询是:选择*,匹配(名称,描述)与('key')作为关联,从提供位置匹配(名称,描述)针对('key')和idcat IN(8、10、5、7、2、6、9)ORDER BY discount DESC LIMIT 0、3和idcat只能是数字(intval)@ditoje:也许您的PHP代码有问题?如果您的问题包括用于调用查询的代码以及看到的任何错误消息,可能会有所帮助。