我開始之前,這裏是數據庫的樣本格式:在一列中搜索多個值的mysqli,返回匹配另一列,按出現次數排序?
id date title content
--------------------------------------------------------------
1 YYYY-MM-DD some text here lots of stuff to search here
2 YYYY-MM-DD some text here lots of stuff to search here
3 YYYY-MM-DD some text here lots of stuff to search here
目前,我有一些設置以獲得行的id,然後指定的日期,標題和內容,PHP變量顯示在一個頁面上的不同地方(這是一個博客,這些是帖子)。
現在我試圖做一個函數來搜索數組中每個字符串的內容(代碼已經將輸入到搜索框中的單詞按空格分割成一個數組,因此輸入cat hotdog suit
將給出[0]cat [1]hotdog [2]suit
)。
我有一個循環設置一個在每個字符串進行查詢:
foreach ($queryArray as $queryArrayString) {
// query the content column for $queryArrayString
}
不過,我想不出我應該使用什麼樣的查詢,找到後,該字符串的ID發生在。我想將它分配給一個變量($results
)。 扭轉陣列,因此更高的IDS(更新結果)顯示第一後,我想找到每個ID的標題,並將其存儲這樣的:
id (let's say it is 3) => matching title
id (let's say it is 1) => matching title
這可能嗎?我已經嘗試了幾種不同的查詢,但都沒有成功,但是花了2分鐘和大量內存來嘗試。
任何幫助,將不勝感激。
編輯:我創建了標題和內容列的文本索引(我想要同時搜索),如this image所示。
可以搜索嗎?就像我在評論中所說的那樣,我只是需要它以某種方式返回相應的ID和標題。 (結果鏈接文本的標題,鏈接目標的標識爲<a href="blog?p=[id]">[title]</a>
是我正在使用的格式
你可以使用MySQL'LIKE'條件:'SELECT * FROM your_posts在內容LIKE '%firstword%' AND內容LIKE'%secondword%''等 –
聽起來好像你需要在你的表中實現全文搜索。閱讀MySQL文檔:http://dev.mysql.com/doc/refman/5.5/en /fulltext-search.html – Barmar
否則,用'LIKE'搜索大量文本將會非常緩慢。 – Barmar