使用like在两个列中搜索phpmyadmin数据库

时间:2011-11-07 08:12:38

标签: php database phpmyadmin

在我的数据库中,我有一列名字和姓氏 在我的代码中,我将这两列结合起来并将其用作全名 我在显示屏上有一个搜索框,看起来像这样,

enter image description here

搜索的代码就像,

开关($ 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

中一起触发查询我的名字和姓氏列

1 个答案:

答案 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和准备好的查询。