2013-03-05 92 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