我有一个名为的表news
,并且使用这两个代码片段,我想创建一个扫描该keywords
表的搜索引擎。一个表连接并运行得非常好,向查询中添加一个额外的表会更干净。
我的任务是创建一个从表中返回行的搜索引擎。搜索引擎基于关键字,非常适合特定术语,例如“纽约时报”,但如果我想输入新闻,那是所有新闻网站按 id 排序的地方。但有时,与 CNN 不同,由于 id 的原因,具有关键字“新闻”的完全不同的术语会在表格中弹出相当高的位置。使用新表,组织表会容易得多。这样,如果输入的术语是“新闻”,则站点将按 id 排序,即使它们在其他表上发生冲突,它们仍然按 id 排序。
虽然我的查询与传统查询有点不同,但我不知道如何
通过
UNION
或添加表格带有某种
LEFT JOIN
标签。
我的查询如下,我希望有人解释:a)简单的问题b)告诉我或粘贴下面的代码:
<?php
if( isset($_GET['k']) ){
$k = $_GET['k'];
}else{
$k = '';
}
$k = ( isset($_GET['k']) )? trim($_GET['k']) : '';
$terms = (strlen($k) > 0)? explode(' ', $k) : Array();
/* The code below is from a different part of the script */
$query = " SELECT * FROM scan WHERE ";
$terms = array_map('mysql_real_escape_string', $terms);
$i = 0;
foreach ($terms as $each) {
if ($i++ !== 0){
$query .= " AND ";
}
$query .= "keywords LIKE '%{$each}%'";
}