Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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 Mysql请求()在和之后不起作用_Php_Mysql_Regex - Fatal编程技术网

Php Mysql请求()在和之后不起作用

Php Mysql请求()在和之后不起作用,php,mysql,regex,Php,Mysql,Regex,当我有此请求时: SELECT fr,text_id FROM texts WHERE ( fr REGEXP '[>.:, ]le[<.:, ]' OR fr REGEXP '^le[[:space:]]?' OR fr REGEXP '[[:space:]]le[[:space:]]?$' ) AND fr REGEXP '[>.:, ]la[<.:, ]' '' ORDER BY text_id DESC LIMIT 0, 20 它起作用

当我有此请求时:

SELECT fr,text_id FROM texts 
WHERE (
    fr REGEXP '[>.:, ]le[<.:, ]' OR fr REGEXP '^le[[:space:]]?' 
    OR fr REGEXP '[[:space:]]le[[:space:]]?$'
  ) AND fr REGEXP '[>.:, ]la[<.:, ]' '' 
ORDER BY text_id DESC LIMIT 0, 20
它起作用了

但是,当我把它放在电脑上时,它就不起作用了:

SELECT fr,text_id FROM texts 
WHERE (
    fr REGEXP '[>.:, ]le[<.:, ]' OR fr REGEXP '^le[[:space:]]?' 
    OR fr REGEXP '[[:space:]]le[[:space:]]?$'
  ) AND (fr REGEXP '[>.:, ]la[<.:, ]') '' 
ORDER BY text_id DESC LIMIT 0, 20
放置的目的是将所有其他单词或与一起放置,因此请求只显示结果,其中通过搜索,键入的所有单词都出现在文本中,。和其他角色

因此,理想情况下,这应该是可行的:

SELECT fr,text_id FROM texts 
WHERE (
    fr REGEXP '[>.:, ]le[<.:, ]' 
    OR fr REGEXP '^le[[:space:]]?' 
    OR fr REGEXP '[[:space:]]le[[:space:]]?$'
  ) AND (
    fr REGEXP '[>.:, ]la[<.:, ]' 
    OR fr REGEXP '^la[[:space:]]?'
  ) OR fr REGEXP '[[:space:]]la[[:space:]]?$'
  ) '' ORDER BY text_id DESC LIMIT 0, 20
如果这有帮助的话,我可以使用这个循环来获取字数:

for($i=0;$i<$wordsLenght;$i++)
    {
        if($i !== 0)
        {   

        $recherche .= " )AND (".$lang." REGEXP '[>.:, ]".$words[$i]."[<.:, ]') ";
        }
        else
        {

                if($wordsLenght == 1)
                {
                    $recherche = "".$lang." REGEXP '[>.:, ]".$words[0]."[<.:, ]' OR (".$lang."     
                    REGEXP '^".$words[0]."[[:space:]]?') OR ".$lang." REGEXP  
                    '[[:space:]]".$words[0]."[[:space:]]?$'";                   
                }
                else
                {
                    $recherche = "(".$lang." REGEXP '[>.:, ]".$words[0]."[<.:, ]' OR ".$lang."    
                    REGEXP '^".$words[0]."[[:space:]]?' OR ".$lang." REGEXP 
                    '[[:space:]]".$words[0]."[[:space:]]?$'";
                }

        }
    }

它在一个函数中用作另一个函数的参数,该函数的一部分对应于WHERE之后的mysql请求

上一次之后,您是否尝试删除这些看似多余的内容

SELECT fr,text_id FROM texts 
WHERE (
    fr REGEXP '[>.:, ]le[<.:, ]' OR fr REGEXP '^le[[:space:]]?' 
    OR fr REGEXP '[[:space:]]le[[:space:]]?$'
  ) AND (fr REGEXP '[>.:, ]la[<.:, ]')
ORDER BY text_id DESC LIMIT 0, 20

您希望如何处理这些空的?请尝试从fr REGEXP'[>。:,]le[.:,]la的文本中选择fr,text_id[这源于以前的编码,我不想删除它,以防它对应用程序的其余部分产生影响,大型项目让我相当谨慎,我检查所有这些东西,一旦一切正常,我会删除它,更好的安心^^这是其余部分工作的基础!你为我节省了很多时间,减少了压力,非常感谢你!没问题,这看起来像是一场噩梦,我将把它作为一种恭维^^到目前为止,我渴望快速进步,多亏了你,这让我充满了灵感!