在我的数据库中,我有一列名字和姓氏 在我的代码中,我将这两列结合起来并将其用作全名 我在显示屏上有一个搜索框,看起来像这样,
搜索的代码就像,
开关($ search_by){
case "fullname":
$sql_where_clause = "fname like '".$search_keyword."%';
break;
case "user_name":
$sql_where_clause = "uname like '".$search_keyword."%';
break;
}
并在查询中使用此$ sql_where_clause进行搜索。
当我搜索全名aspi这是我在数据库中的名字时,它给了我完美的答案,因为我已经完成了名字的代码。 但问题是,当我搜索arpi patel,其中arpi是名字而Patel是姓氏,然后搜索没有执行,因为我还没有完成代码,因为我不知道如何执行此操作。
有没有人知道如何在$ sql_where_clause
中一起触发查询我的名字和姓氏列答案 0 :(得分:0)
您需要在SQL查询中使用逻辑运算符,如下所示:
$sql_where_clause = "fname LIKE '$fname' AND uname LIKE '$uname'";
如何获得$ fname和$ uname变量?如果你的$ search_keyword看起来像这样:
family name
您可以按空格$search_parts = explode(' ', $search_keyword, 2)
对其进行爆炸。但在这种情况下,您不知道哪个部分是系列,哪个是名称,因此您必须执行以下查询:
$sql_where_clause = "(fname LIKE '${part[0]}' AND uname LIKE '${part[1]}') OR (fname LIKE '${part[1]}' AND uname LIKE '${part[0]}')";
顺便说一句,不要忘记清理对sql注入的查询。糟糕的方式 - 使用mysql_real_escape_string。好方便 - 使用PDO和准备好的查询。