我有以下代码:MySQL的全文基本搜索,多个单词
$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 Clayton Clearance)技嘉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中执行此操作也不会返回任何行,那么查询的哪个部分是错误的?
如果有人可以协助这将是伟大的。
非常感谢
不是一个PHP的人,但是当VAR标识符是单引号内最脚本语言不扩展变量值。试试'SELECT * FROM parts WHERE part LIKE“%$ q%”''祝你好运! – shellter 2011-05-19 02:36:04