0
<?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アーティスト」を追加すると、上記のコードが機能しません。

1 つのフィールドのみがデータベース レコードと比較される場合、コードは機能し、検索結果が表示されます。

私は何を間違っていますか?

4

2 に答える 2

1

フィールドごとにリレーションが必要です。

$query_search = "SELECT * FROM waxItem WHERE title LIKE '%".$search_input."%' OR artist LIKE '%".$search_input."%'";
于 2012-04-28T23:20:14.157 に答える
1

複数のフィールドに同じ LIKE 基準を指定することはできません。フィールドごとに指定する必要があります。これを行うことはできますが、SQL インジェクション攻撃のため、これは絶対にお勧めできません。このSQLインジェクションを読んでください

あなたは変わらなければならない

    $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."%'";
于 2012-04-28T23:21:03.347 に答える