Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Search 搜索phpbb';s';题目';通过MYSQL php,但精确匹配不会';行不通_Search_Mysql_Phpbb - Fatal编程技术网

Search 搜索phpbb';s';题目';通过MYSQL php,但精确匹配不会';行不通

Search 搜索phpbb';s';题目';通过MYSQL php,但精确匹配不会';行不通,search,mysql,phpbb,Search,Mysql,Phpbb,我在phpMyAdmin中运行此查询,结果如下:(正确) 但当我在PHP中运行相同的MYSQL查询时,我得到:(不正确) 我还尝试使用php和phpMyAdmin进行匹配,结果相同: match this title 002 im用于搜索的整个代码块: $sql = "SELECT topic_title FROM phpbb_topics WHERE MATCH (topic_title) AGAINST('match

我在phpMyAdmin中运行此查询,结果如下:(正确)

但当我在PHP中运行相同的MYSQL查询时,我得到:(不正确)

我还尝试使用php和phpMyAdmin进行匹配,结果相同:

match this title 002
im用于搜索的整个代码块:

$sql = "SELECT topic_title 
          FROM phpbb_topics 
         WHERE MATCH (topic_title) 
               AGAINST('match this title' IN BOOLEAN MODE)";
知道我做错了什么吗


我一直在到处搜索,几乎没有找到任何帮助:(

问题是,在执行查询后,您获取第一行,不做任何处理,通过获取第二行进入循环,然后开始打印结果

如果删除第一个
$row=mysql\u fetch\u数组($result)
,(直接在
$result=mysql\u query($query)或die(mysql\u error());
)之后,您应该不会有问题


另一个注释;如果您回显一个变量,则不必在其周围放置任何qoutes。按照您现在的方式,结果之间不会有换行符,因此您可能希望将该行更改为
echo$topic\u title。“
”;

问题是,在执行查询后,获取第一行,不做任何处理,通过获取第二行进入循环并开始打印结果

如果删除第一个
$row=mysql\u fetch\u数组($result)
,(直接在
$result=mysql\u query($query)或die(mysql\u error());
)之后,您应该不会有问题


另一个注释;如果您回显一个变量,则不必在其周围放置任何qoutes。按照您现在的方式,结果之间不会有换行符,因此您可能希望将该行更改为
echo$topic\u title。“

啊,是的,只是对bash和php有点混淆,就像bash一样,你几乎总是需要引号。但是正确地使用引号并没有什么坏处吗?我还添加了
标记,因为我看到两个结果作为一个长句出现:p(干杯!)不,引号不会有什么坏处。这是风格的问题。我更喜欢把我所有的变量都放在引号之外。啊,是的,只是在bash和php之间有点混淆,就像bash一样,你几乎总是需要引号。但是正确使用引号并没有什么坏处吗?我还添加了
标记,因为我看到两个结果作为一个长句出现:P(干杯!)不,引号没有坏处。这是风格的问题。我更喜欢把我所有的变量都从引号中去掉。
match this title 002
$sql = "SELECT topic_title 
          FROM phpbb_topics 
         WHERE MATCH (topic_title) 
               AGAINST('match this title' IN BOOLEAN MODE)";
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("phpbb") or die(mysql_error());         
$query = "match this title";
$query = "SELECT topic_title 
    FROM phpbb_topics 
    WHERE MATCH (topic_title) 
          AGAINST('$query' IN BOOLEAN MODE)"; 
// Doesn't work (these 2 both give the same result "match this title 002" and no the "match this title")
// $query = "SELECT * FROM `phpbb_topics` 
//    WHERE `topic_title` 
//    LIKE '%$query%' 
//    LIMIT 0, 30 "; // Doesn't work
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());

while($row = mysql_fetch_array($result)){
    $topic_title = $row['topic_title'];
    echo "$topic_title";
}