2013-03-05 96 views
1

我有以下代碼,其中我有一個文本區域將輸入作爲單獨的值並將其合併到一個句子中。例如,如果用戶輸入andheri bandra dadar然後存儲在$ data中,則它顯示爲andheri,bandra,dadar。此外,文本區域是自動完成的意思是,如果你輸入「da」,那麼它會自動填充dodar如何從mysql數據庫中檢索由逗號分隔的所有值?

我試過下面的函數,然後它搜索句子中的所有值,但它只是第一個值從句子即andheri。請幫幫我。

//code 
$sql=mysql_query("SELECT * FROM broker_property WHERE find_in_set(area,'$data')") or die(mysql_error()) 

這裏area是在MySQL表中的列和$data是sentense方含用逗號分隔的所有子值。

+0

嘿,我得到了解決辦法...我更換FIND_IN_SET包裹(區,'$ data')「)與find_in_set(area,'」。$ data。「')」),它工作正常...謝謝你兄弟的回覆 – user2038731 2013-03-05 06:17:11

回答

0

使用MySQL CONCAT_WS OR CONCAT子句將幫助您加入字符串。

公文http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws

select * from broker_property where concat_ws(' ',area,$data) like 'CONDITIONS'; 

,或者您也可以使用where子句中的平等檢查。

+0

什麼是條件在這裏? – user2038731 2013-03-05 06:11:18

+0

你想要什麼......,意味着要麼php變量或任何東西... – 2013-03-05 06:12:32

+0

嘿我得到解決方案...我用find_in_set(area,'「。$ data替換find_in_set(area,'$ data')」)。 「')」),它的工作正常......謝謝你兄弟的回覆 – user2038731 2013-03-05 06:15:01

0

每個引號你的話,然後用這個

SELECT * FROM broker_property WHERE area IN ($data) 

SELECT * FROM broker_property WHERE area IN ("First","Second","Third") 
+0

是啊這是正確的,但我不知道用戶將輸入多少值在文本區?我必須回顧用戶將輸入的價值。它是動態的。 – user2038731 2013-03-05 06:02:43

+0

這應該適用於任何數量的值。如果你生成你的字符串像這樣''word1「,」word2「,」word3「'等 – 2013-03-05 06:03:58

+0

是的,但我有更多的400個值。所以我可以把所有400的價值? – user2038731 2013-03-05 06:06:39

0

使用IN

$sql=mysql_query("SELECT * FROM broker_property WHERE area IN ('$data')"); 
+1

嘿,我得到了解決方案...我用find_in_set(area,'「。$ data。」')「替換find_in_set(area,'$ data')」)),它工作正常......謝謝你bro的回覆 – user2038731 2013-03-05 06:16:49

+0

太棒了!謝謝。 – 2013-03-05 06:19:09