我做了一个简单的PHP搜索功能,它可以搜索product_name
,但是我想添加另一个功能,以便它可以从product_name
进行搜索 OR product_designer
。
搜索功能
function search($dbh, $word){
$query = "SELECT
product.product_name,
product.product_color,
product.year_released,
product.product_price,
product.product_image,
product.product_id,
product.product_desc,
product.product_designer,
type.name as type
FROM
product
JOIN type USING(typpe_id)
WHERE
product.product_name LIKE :word";
$stmt = $dbh->prepare($query);
$stmt->bindValue(':word', '%'.$word.'%', PDO::PARAM_STR);
$stmt->execute();
// fetch one product
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
函数调用
if(!empty($_GET['word'])) {
$products = search($dbh, $_GET['word']);
$title = 'Products like: ' . $_GET['word'];
}
答案 0 :(得分:0)
只需使用 OR 条件:
$query = "SELECT
product.product_name,
product.product_color,
product.year_released,
product.product_price,
product.product_image,
product.product_id,
product.product_desc,
product.product_designer,
type.name as type
FROM
product
JOIN type USING(typpe_id)
WHERE
product.product_name LIKE :word
OR product.product_designer LIKE :word ";
$stmt = $dbh->prepare($query);
$stmt->bindValue(':word', '%'.$word.'%', PDO::PARAM_STR);
$stmt->execute();
// fetch one product
return $stmt->fetchAll(PDO::FETCH_ASSOC);
答案 1 :(得分:0)
您需要在where子句中进行查询,您必须添加or
并使用所需的列名(此处为product_designer
)
SELECT
product.product_name,
product.product_color,
product.year_released,
product.product_price,
product.product_image,
product.product_id,
product.product_desc,
product.product_designer,
type.name as type
FROM
product
JOIN type on product.typpe_id=type.typpe_id
WHERE
product.product_name LIKE '%variable%' or product_designer like '%variable%'
答案 2 :(得分:0)
使用WHERE
条件更新您的OR
子句。
将您的OR
条件包装在括号中是一个不错的主意,以便以后再添加AND
条件时,首先会评估OR
(由于运算符的顺序)。>
例如:
WHERE
(
product.product_name LIKE :word
OR
product.product_type LIKE :word
)