2016-12-26 57 views
2

我所試圖做的是顯示所有行那裏是在$ st_id_get_2匹配的條目。PHP/MySQL的,其中關鍵字的mysqli表,無法顯示結果

$ st_id_get_2將始終包含一個關鍵字,所以點擊網站上的關鍵字時,它會通過數據庫,是表示將關鍵字列「kb_keywords」

 echo "<table class='' cellspacing='0' width='100%'>"; 
     $sql3aa = mysqli_query($con, "SELECT * FROM knowledgebase_items WHERE kb_visible = 'Yes' and kb_keywords IN ($st_id_get_2)"); 
     while ($row3aa = $sql3aa->fetch_assoc()){ 

     echo "<tr><td width='50%'><blockquote class='message'><a class='hover' href='../" . $row3aa['kb_ID'] . "'>" . $row3aa['kb_subject'] . "</a></blockquote></td></tr>"; 
     } 
     echo "</table>"; 

上市所以所有行錯誤消息我得到是這樣的:

enter image description here

參考當前數據庫結構是:

enter image description here

我似乎無法讓我做了什麼錯在這裏。

我相信這個問題是在這裏:

kb_keywords IN ($st_id_get_2) 

,但我不知道我做錯了,我可以得到一些建議,請指出我的錯誤?

的$ st_id_get_2一個例子可能是「用戶」,「帳戶」,「報告」

但會有永遠只能是在任何時間在每個$ st_id_get_2一個字,你可以去到網站,然後點擊將變量傳遞給查詢的關鍵字按鈕。

這其中的關鍵詞是什麼樣子下面的屏幕截圖的例子,這僅僅是樣本數據。

enter image description here

感謝

大衛

+0

你可以給$ st_id_get_2 – reza

回答

2

你必須使用LIKE在這裏,而不是在

"SELECT * FROM knowledgebase_items WHERE kb_visible = 'Yes' and kb_keywords LIKE '%".$st_id_get_2."%'" 

或精確匹配

"SELECT * FROM knowledgebase_items WHERE kb_visible = 'Yes' and kb_keywords LIKE '".$st_id_get_2."'" 
+1

喜禮感謝的樣本值是完美的,我使用的代碼像工程完全按照需要的,而不是精確匹配。謝謝 !一整天都讓我發瘋! – Sandy

+2

請將答案標記爲已接受的答案。 – reza

+1

是的,我必須等待10分鐘才能接受你的答案:)所有現在完成並接受。 – Sandy