简体   繁体   English

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

[英]MySQL fulltext basic search, multiple words

I have the following code: 我有以下代码:

$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>"; 
}

When I load up http://site.com/q?=Nvidia it does not display any output. 当我加载http://site.com/q?=Nvidia时,它不会显示任何输出。

MySQL Structure: 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

The data inside the table: 表中的数据:
`id |#| `id |#| part |#| 部分|#| price 价钱
46 |#| 46 |#| (VIC Clayton Clearance) GIGABYTE 9800GT 512MB Nvidia Geforce GF9800GT DVI P... |#| (VIC克莱顿清除)技嘉9800GT 512MB Nvidia Geforce GF9800GT DVI P ... |#| 95.00 95.00

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

However without using str_replace eg. 但是不使用str_replace例如。 str_replace(' ', '&'. $q); it never worked for multiple words. 它从来没有用过多个单词。 Using the str_replace only made it work with 2 words, I need multiple. 仅使用str_replace可以使用2个单词,我需要多个单词。

Doing this in PHPMyAdmin returns no rows either, so what part of the query is wrong? 在PHPMyAdmin中这样做也不返回任何行 ,那么查询的哪一部分是错误的?

If someone could assist that would be great. 如果有人可以提供帮助,那将是很好。

Thanks alot 非常感谢

Omit the where clause in your sql statement. 忽略sql语句中的where子句。

Also the '?' 也是“?” in your URL should come before any name value pairs. 网址中的“。”应位于任何名称/值对之前。

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

Works well :-) 效果很好 :-)

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

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