[英]Sql Query Result based on Condition
I have two put two condition in the result of a sql query result for the below function: 我在下面的函数的sql查询结果的结果中有两个放两个条件:
Below is currently used: 目前使用的是:
public function search_project_name($term)
{
$params = array( ':term' => $term);
$sql = "SELECT * FROM projects WHERE project_name like '%$term%'ORDER BY projects.create_date DESC $limit";
$stmt = parent::query($sql, $params);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) :
$result[]=$row;
endwhile;
return $result;
}
You could add these condition with a not
operator: 您可以使用
not
运算符添加这些条件:
SELECT *
FROM projects
WHERE a_name like '%$term%' AND
NOT (a_name = 'xxxx' and a_name = b_name)
Problem part is $term
in query so replace $term
with :term
try updated code: 问题部分是查询中的
$term
,因此将$term
替换$term
:term
尝试更新代码:
public function search_project_name($term){
$params = array(
':term'=>$term);
$sql = "SELECT * FROM projects WHERE project_name like '%:term%'ORDER BY projects.create_date DESC $limit";
$stmt = parent::query($sql, $params);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) :
$result[] = $row;
endwhile;
return $result;
}
One more missing parameter is $limit
you used in query but not passed to function? 还有一个缺失的参数是您在查询中使用但未传递给函数的
$limit
?
With $limit
as 2nd parameter default set to 10 rows: 将
$limit
作为第二个参数,默认设置为10行:
public function search_project_name($term, $limit = 10){
$params = array(
':term'=>$term);
$sql = "SELECT * FROM projects WHERE project_name like '%:term%'ORDER BY projects.create_date DESC $limit";
$stmt = parent::query($sql, $params);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) :
$result[] = $row;
endwhile;
return $result;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.