我正在创建一个工作搜索引擎,它将支持高级搜索。
我想要做的是允许某人搜索“样本”,然后将付款类型设置为“小时”作为标准。这将只显示示例技术工作。
下面的代码工作并输出预期的结果
$result = mysqli_query($con,"SELECT * FROM tnqj3_content LEFT JOIN tnqj3_fieldsattach_values ON tnqj3_fieldsattach_values.articleid = tnqj3_content.id WHERE tnqj3_content.title LIKE '%$q_keywords%' AND tnqj3_fieldsattach_values.value='hour'
但是,我想添加多个标准,以便他们也可以要求支付率为“10”(id=4)。当我在语句末尾添加“OR”时,它会得到两次结果
$result = mysqli_query($con,"SELECT * FROM tnqj3_content LEFT JOIN tnqj3_fieldsattach_values ON tnqj3_fieldsattach_values.articleid = tnqj3_content.id WHERE tnqj3_content.title LIKE '%$q_keywords%' AND tnqj3_fieldsattach_values.value='hour' OR tnqj3_fieldsattach_values.value='10'
如果我将 OR 更改为 AND,则找不到结果。如果找到两个条件,我该如何设置它以获取一次该行?
对于上下文,这是代码:(Ps。它都被清理了):
// Get search paramaters
$q_keywords = $_GET['q_keywords'];
$result = mysqli_query($con,"SELECT * FROM tnqj3_content LEFT JOIN tnqj3_fieldsattach_values ON tnqj3_fieldsattach_values.articleid = tnqj3_content.id WHERE tnqj3_content.title LIKE '%$q_keywords%' AND tnqj3_fieldsattach_values.value='hour' OR tnqj3_fieldsattach_values.value='10' ");
while($row = mysqli_fetch_array($result))
{
echo "<div class='search-result'><a href='/index.php?option=com_content&view=article&id=" . $row['id'] . "' class='search-result-title'>" . $row['title'] . "</a>" . $row['introtext'];
echo "</div>";
}