искать в базе данных myadmin по двум столбцам используя - PullRequest
0 голосов
/ 07 ноября 2011

В моей базе данных у меня есть один столбец для имени и фамилии.
В моем коде я объединил эти два столбца и использовал его как полное имя.
У меня есть одно поле поиска на дисплее, которое выглядит каквот,

enter image description here

код для поиска похож на

switch ($ 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используется в запросе для поиска.

, когда я ищу полное имя как arpi, которое является моим первым именем в базе данных, это дает мне идеальный ответ, потому что я сделал код для имени.но проблема в том, что когда я ищу как arpi patel, где arpi - имя, а patel - фамилия, тогда поиск не выполняется, потому что я не сделал код для этого, потому что я не знаю, как это сделать.

Кто-нибудь знает, как запустить запрос для моих столбцов имени и фамилии вместе в $ sql_where_clause

1 Ответ

0 голосов
/ 07 ноября 2011

Вам необходимо использовать логические операторы в вашем запросе 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 и предварительно подготовленные запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...