1
我有這樣的代碼爲我的搜索引擎:PHP搜索引擎 - 搜索多個關鍵字
if(isset($_POST['search']))
{
$search = $_POST['search'];
$terms = explode(",", $search);
$projectlistquery = "
SELECT project.accid, customer.custid, projectid, project.datefrom, custnamecode, dateto, daluur, project.gebruikersid, gebruikers.gebruikersid,
type, typeid, typename, custsurname, custmidname, custforename, acc1cust, acc2date, acc3nrofproj, acc4user, project.crew, project.jobinstr, project.projectinfo, usersurname, usermidname, userforename
FROM project
INNER JOIN type on project.type = type.typeid
INNER JOIN customer on project.custid = customer.custid
INNER JOIN accountingcode on project.accid = accountingcode.accid
INNER JOIN gebruikers on project.gebruikersid = gebruikers.gebruikersid
WHERE
";
$i = 0;
foreach ($terms as $each)
{
if ($i++ > 0)
$projectlistquery .= ' OR ';
$projectlistquery .= "concat(custsurname, custforename, custmidname, custpostal, custphone1, custphone2, custfax, custnamecode, acc1cust, acc2date, acc3nrofproj, acc4user, typename, usersurname, usermidname, userforename) LIKE '%$each%' ";
}
$projectlistquery .= " ORDER BY projectid ";
}
else
$projectlistquery= " // query to show all records.
現在這個工程的搜索1個鍵完全正常。
如果我搜索了一個名字:漢斯·範Meulen的,它顯示了漢斯的所有名稱,在它和Meulen的「麪包車」的所有名稱。所以如果我的數據庫中有Dude van Berkel,他也會顯示出來。我想一起搜索3個字符串。
這是achieveable與破滅? $ terms = implode(「,」,$ search);但是,在'ORDER BY projectid'中返回MySQL語法錯誤。
還是我必須調整我的SQL?
感謝。現在我刪除它,但是我在'ORDER BY projectid'中得到了與語法相同的錯誤。我刪除了$條款var和取代的foreach($條款...)與($搜索另存爲...) –
看起來應該只要搜索詞是正確的格式工作。嘗試刪除ORDER BY投影周圍的空格 – Alex