PHP-从数据库中选择多个列
我有栏目名称、摘要、描述、开放时间、地址、邮政编码 我要做的是触发“$construct”查询中的所有这些列,其中包括“%$search\u each%”之类的内容 我已经尝试过,或者,并且团结起来了,那会是什么样的结构呢 我已经没有主意了。像这样使用PHP-从数据库中选择多个列,php,forms,search,multiple-columns,Php,Forms,Search,Multiple Columns,我有栏目名称、摘要、描述、开放时间、地址、邮政编码 我要做的是触发“$construct”查询中的所有这些列,其中包括“%$search\u each%”之类的内容 我已经尝试过,或者,并且团结起来了,那会是什么样的结构呢 我已经没有主意了。像这样使用concat\ws(): $search_exploded = explode (" ", $search); foreach($search_exploded as $search_each) { $x++; if($x==1)
concat\ws()
:
$search_exploded = explode (" ", $search);
foreach($search_exploded as $search_each) {
$x++;
if($x==1)
$construct .="Name LIKE '%$search_each%'";
else
$construct .="AND Name LIKE '%$search_each%'";
}
$construct ="SELECT * FROM Rating, Attraction WHERE $construct" ;
希望它能起作用
$construct ="SELECT * FROM Rating, Attraction WHERE
concat_ws(Name, Summary, Description, OpeningHours, Address, Postcode)
LIKE '%$search_each%'";
您必须记住,
$search
现在是一个数组,每个列键都有作为字符串值的搜索项。foreach循环迭代后,$construct
的值是多少?是否要检查任何搜索词是否出现在任何字段中?尽管现在我的数据库信息正在重复其值self和显示echos各12次,12是我在数据库中的行数。有人知道如何解决这个问题吗?我试过休息;但这只会在我的搜索中产生一个结果…非常感谢提醒!我知道重复结果有问题,这与多维数组有关吗。我试过休息一下;在echo中,但这将始终将搜索减少为一个结果,谢谢。
$columns = array('Name', 'Summary', 'Description', 'OpeningHours', 'Address', 'Postcode')
foreach($columns as $column) {
$search_exploded = explode (" ", $search[$column]);
foreach($search_exploded as $search_each) {
$x++;
if($x==1)
$construct .="$column LIKE '%$search_each%'";
else
$construct .="AND $column LIKE '%$search_each%'";
}
}