<?php
$search_input = $_POST["search_input"];
include_once("connection_to_db.php");
if(!isset($search_input))
{
print("Nothing to search !");
return;
}
//Queries products where the search input is similiar to the title, artist or format of a product
$query_search = "SELECT * FROM waxItem WHERE title OR artist LIKE '%".$search_input."%'";
$query_search_result = mysql_query($query_search)
or die(mysql_error());
$num_rows_search = mysql_num_rows($query_search_result);
?>
当我添加“OR artist”时,上面的代码不起作用。
当只有一个字段与数据库记录进行比较时,代码确实有效并显示搜索结果。
我做错了什么?
答案 0 :(得分:1)
每个字段需要一个关系。
$query_search = "SELECT * FROM waxItem WHERE title LIKE '%".$search_input."%' OR artist LIKE '%".$search_input."%'";
答案 1 :(得分:1)
您无法为多个字段声明相同的LIKE条件。您必须为每个字段指定它。即使您可以这样做,但由于SQL注入攻击,这绝对不是推荐的方法。请阅读此SQL Injection
你必须改变
$query_search = "SELECT * FROM waxItem WHERE title OR artist
LIKE '%".$search_input."%'";
到
$query_search = "SELECT * FROM waxItem WHERE title
LIKE '%".$search_input."%' OR artist LIKE '%".$search_input."%'";