我有一个名为“clients”的MYSQL数据库,显示如下:
FNAME | LNAME | TEL | MAIL | USER | ID
现在使用这个小代码,我想搜索aaaa
的基础(稍后会动态):
$sql = "SELECT * FROM clients WHERE MATCH(LNAME, FNAME, TEL, MAIL) AGAINST('aaaa')";
$rest = MySQL_query($sql);
while($row = MySQL_fetch_array($rest)) {
echo "<tr><td>{$sql['LNAME']}</td>";
echo "<td>{$sql['FNAME']}</td>";
echo "<td>{$sql['TEL']}</td>";
echo "<td>{$sql['MAIL']}</td></tr>";
}
但我得到的只是Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/sites/xxxxxxxx/search.php on line 31
第31行:while($row = MySQL_fetch_array($rest)) {
我尝试了1000种组合,但似乎没有什么可以做到的。我做错了什么?!
感谢您的帮助
编辑:好的我现在已经将FULLTEXT添加到我的桌面了。我现在没有错误,但问题是我仍然没有结果。这段代码是否会搜索所有字段并查看“aaaa”是否属于其中任何一个字段中的所有四个字段?
编辑2:
在代码的最后部分将$ sql更改为$ row。似乎工作......
编辑3:但仅限于MATCH(LNAME)
(或另一个)。不是我全部添加它们。
答案 0 :(得分:0)
请尝试以下任一方法:
$sql = "SELECT * FROM clients WHERE CONCAT_WS(' ',LNAME, FNAME, TEL, MAIL) LIKE '%aaaa%'";
$sql = "SELECT * FROM clients WHERE CONCAT_WS(' ',LNAME, FNAME, TEL, MAIL) regexp '.*aaaa+.*'";