簡體   English   中英

PHP / MySQL搜索未返回所有結果

[英]PHP/MySQL Search not returning ALL results

因此,我有一個搜索公司列表的表單,以查看該公司是否已在網站上注冊。

當公司名稱是三個或更少的字符,並且我可以看到它在數據庫中時,結果將不會顯示。

例如,如果公司名稱為“ ABB Eutech”,而搜索是針對ABB,則搜索返回0。

但是,如果您搜索Eutech,則搜索將返回結果。

這是我正在使用的代碼:

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

任何幫助大受好評! ...溫柔,這是我的第一次。

默認情況下,MySQL全文索引中會忽略三個或三個以下字符的單詞。

要索引的單詞的最小和最大長度由ft_min_word_len和ft_max_word_len系統變量定義。 (請參見第5.1.3節“服務器系統變量”。)默認的最小值是四個字符;默認值為4個字符。 默認最大值取決於版本。 如果更改這兩個值,則必須重建FULLTEXT索引。 例如,如果希望可搜索三個字符的單詞,則可以通過將以下行放在選項文件中來設置ft_min_word_len變量:[mysqld] ft_min_word_len = 3

然后重新啟動服務器並重建您的FULLTEXT索引。 請特別注意此列表后面的說明中有關myisamchk的備注。

http://dev.mysql.com/doc/refman/5.0/en/fulltext-fine-tuning.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM