繁体   English   中英

MySQL全文基础搜索,多个单词

[英]MySQL fulltext basic search, multiple words

我有以下代码:

$dbLink = mysql_connect('localhost', 'tester', 'test');
mysql_select_db('acianetm_pcSpec', $dbLink);
$q = $_GET['q'];
$q = mysql_real_escape_string($q);
$sql = "
    SELECT *,
        MATCH(part) AGAINST ('$q') AS score
    FROM parts
    WHERE MATCH(part) AGAINST('$q')
"; 
$rest = MySQL_query($sql); 
while($row = MySQL_fetch_array($rest)) { 
echo "<br /> <strong>".$row['id']. " - ". $row['part']. " - $". $row['price']."</strong>"; 
}

当我加载http://site.com/q?=Nvidia时,它不会显示任何输出。

MySQL结构:

CREATE TABLE `parts` (
`id` int(10) NOT NULL auto_increment,
`part` varchar(512) NOT NULL,
`price` varchar(15) NOT NULL,
`updated` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY  (`id`),
UNIQUE KEY `part_2` (`part`),
FULLTEXT KEY `part` (`part`)
) ENGINE=MyISAM AUTO_INCREMENT=47 DEFAULT CHARSET=latin1

表中的数据:
`id |#| 部分|#| 价钱
46 |#| (VIC克莱顿清除)技嘉9800GT 512MB Nvidia Geforce GF9800GT DVI P ... |#| 95.00

我已经尝试过此SQL查询:
SELECT * FROM parts WHERE part LIKE '%$q%'

但是不使用str_replace例如。 str_replace(' ', '&'. $q); 它从来没有用过多个单词。 仅使用str_replace可以使用2个单词,我需要多个单词。

在PHPMyAdmin中这样做也不返回任何行 ,那么查询的哪一部分是错误的?

如果有人可以提供帮助,那将是很好。

非常感谢

忽略sql语句中的where子句。

也是“?” 网址中的“。”应位于任何名称/值对之前。

$sql = "SELECT * FROM parts
WHERE MATCH(part) AGAINST ('$q')";

效果很好 :-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM