ddimonn8080
@ddimonn8080

Как включить также совпадения без учёта регистра?

Здравствуйте, есть метод класса который ищет в базе данных фамилии которые начинаются с введённого пользователем в поле поиска слова. Надо сделать чтобы выбирало все фамилии которые начинаются с этих букв и при этом не учитывался регистр. Пока что сделал так:
public function get_all_users_arr($surname)
    {
        $result = mysqli_query($this->db, "SELECT `surname` FROM `users` WHERE `surname` REGEXP '$surname'");

        $user_arr = array();
                    
        while ($row = $result->fetch_assoc()){

                $user_arr[] = $row['surname'];
            
        }
        return $user_arr;
    }


Таким образом находит все совпадения даже если они не в начале строки.

Раньше метод выглядел так:
public function get_all_users_arr($surname)
    {
        $result = mysqli_query($this->db, "SELECT `surname` FROM `users`");

        $user_arr = array();
                    
        while ($row = $result->fetch_assoc()){

            if ( mb_stripos($row['surname'], $surname, 0, "UTF-8") === 0) {
                $user_arr[] = $row['surname'];
            }
            
        }
        return $user_arr;
    }


И выбирал всё а потом отсеивал ненужное, но это не то что надо.

Как сделать так чтобы данные отсеивались с помощью sql запроса и в массив попадали уже нужные значения?

Спасибо.
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
qork
@qork
{ background: #F00B42 }
SELECT `surname` FROM `users` WHERE LOWER(`surname`) LIKE LOWER('$surname%')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽