2013-09-25 32 views
0

也許我不是通過正常的思維,但我有一個公司表:PHP搜索表中的不同領域,並顯示相應的結果

name 
address 
city 
state 
zip 

我要搜索兩個領域,名稱和城市。

我的查詢是:

SELECT DISTINCT city, name 
FROM    companies 
WHERE    city 
LIKE    '%$search%' 
OR     name 
LIKE    '%$search%' 

,結果代碼:

echo '<a href="city.php?city=' . $results['city'] . '">' 
    . $results['city'] . '</a>'; 

現在,這隻有當人的搜索考慮到了城市。如果有人搜索公司名稱,我如何才能顯示該頁面?例如:

echo '<a href="company.php?co=' . $results['name'] . '">' 
    . $results['name'] . '</a>'; 

有沒有什麼辦法根據他們搜索的內容顯示正確的結果?

+0

讀心術,但它只會在PHP 7 –

+0

發生什麼事是做這個的最好方法是什麼? 如何讓結果顯示?在結果之前可以將if語句放在那裏? – robk27

回答

0

如果您只有一個搜索框,您怎麼知道用戶正在尋找什麼?

您可以添加複選框/單選按鈕以提供cityname之間的選擇。

如果你不想那麼做,那麼你不要知道用戶正在尋找什麼。但是,您可以運行兩個查詢,一個用於city,另一個用於name。如果你得到的結果,你至少會知道他們來自哪裏。

+0

我不記得在哪裏,但我知道我看過搜索框,可以搜索完全不同的東西。我會盡力找到它並在此發佈,但與此同時,我確實喜歡你的單選按鈕的建議。 – robk27

+0

是的,正如我所說,你可以**搜索**不同的東西,但你不一定提前知道**用戶正在尋找什麼**。 –

0

爲什麼不把結果的兩個字段與搜索文本進行比較,以便知道匹配它的內容:城市或名稱。 喜歡的東西:

if($search === $results['city']) echo '<a href="city.php?city=' . $results['city'] . '">'. $results['city'] . '</a>'; elseif($search === $results['name'])
echo '<a href="company.php?co=' . $results['name'] . '">'. $results['name'] . '</a>';

不知道如果我理解正確的...

+0

感謝您的回覆。是的,這正是我想要做的,但唯一的是我的結果被每個按鍵過濾(通過javascript),所以$ search可能實際上不匹配$ results ['city']或$ results ['名稱']。任何其他方式我可以檢查比賽? – robk27