因此,我有一個表單搜索公司列表,以查看該公司是否在網站上註冊。PHP/MySQL搜索沒有返回所有結果
當公司名稱是三個或更少的字符,我可以看到它在數據庫中的結果不會顯示。
例如,如果公司的名稱是「ABB優特」,檢索是ABB,那麼搜索如果搜索優特返回0
但是那麼搜索返回結果。
下面是我使用的代碼:
<?php
$out = '';
if ((isset($_POST['companysearch-name'])) && ($_POST['companysearch-name']==NULL)) {
$out .= '<h3>No matches. Please enter a company name.</h3>';
} else if (isset($_POST['companysearch-name'])) {
$queryString = htmlspecialchars($_POST['companysearch-name'],ENT_QUOTES);
if(strlen($queryString) >0) {
$query = $wpdb->get_results("SELECT DISTINCT (company_name) FROM wp_companies WHERE MATCH (company_name) AGAINST ('$queryString')");
$searchStr = "%" . $queryString . "%";
$searchStr = str_replace(" ","%",$searchStr);
$numresults = count($query);
if($query) {
$out .= '<div><ul>';
foreach($query as $result):
$out .= '<li>'.$result->company_name.'</li>';
endforeach;
$out .= '</ul></div>';
$out .= "<p>Is your company on this list? If YES, your company already has the scheme in place and you can setup a donation right now.</p>";
$out .= '<a class="button" href="/donate/"><span>Start Giving</span><b></b></a>';
} else {
$out .= '<h3>No matches found.</h3>';
$out .= "<p>Can't find your employer? They may have only just signed up - <a href='/contact-us/'>contact us</a> and we'll check it out for you.</p>";
}
}
}
?>
任何幫助極大的好評! ...溫柔,這是我第一次。
你可以改變你的數據庫的配置,也可以使用'那裏COMPANY_NAME LIKE%$的queryString%'但很有可能會慢一些 – jcho360 2012-07-10 17:38:27