0
你好,我正在尝试为我的网站创建一个搜索功能。我有这个方法具有查询如何处理从联合选择语句收到的数据
public function search_all($data)
{
$query = [];
$result = $this->db->query('
SELECT blog_title FROM blog WHERE blog_title LIKE "%'. $data . '%"
UNION
SELECT body FROM blog WHERE body LIKE "%'. $data . '%"
UNION
SELECT username FROM users WHERE username LIKE "%'. $data . '%"
');
while ($row = $result->fetch_assoc())
{
$query[] = $row;
}
$result->free();
return $query;
$mysqli->close();
}
然后,我有处理用户输入
public function search()
{
if (isset($_POST['search']))
{
$search_term = trim($_POST['search_term']);
$terms = $this->search->search_all($search_term);
foreach ($terms as $term)
{
var_dump($term);
}
}
}
搜索工作排序的方法。如果我搜索一个用户名或一个博客标题它,然后我可以重复回来这样
echo $term['blog_title'];
,如果我的var_dump然后我得到的东西像
array (size=1)
'blog_title' => string 'BillyBob' (length=8)
我的问题是,为什么它总是retrun BLOG_TITLE为钥匙。我想我会做一些像
如果我想呼应博客标题
echo $term['blog_title'];
如果我想呼应的用户名
echo $term['username'];
用户名是从一个不同的表中retreived调用users – badsyntax
好吧,博客和用户表之间是否有任何关系? –
没关系。我希望用户能够搜索并找到用户或博客帖子。当我遇到这个问题时,我正在玩添加更多的工会,以便他们可以找到其他的东西。 – badsyntax