1. PHP / Говнокод #18497

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (strlen($this->post['Name']) >= 3) {
        $p = preg_split('/\s+/', $name) + [' ', ' '];
        sort($p);
    
        $permutation = [$p[0], $p[1], $p[2], $p[0], $p[1], $p[0], $p[2], $p[1], $p[0]];
        $name = join(' ', $permutation);
    
        $list = Model_Students::searchStudentsByName($name, $facultyID, $gradeID, $groupID);
    }

    С ребятами запилили полнотекстовый поиск фио. Функция из модели — вызов MySQL процедуры.

    Реалия простая — MySQL не умеет в split, не умеет в переменное количество параметров, не умеет в нечёткий поиск. Выкручиваемся как можем.

    Запостил: xamgore, 20 Июля 2015

    Комментарии (5) RSS

    • http://sphinxsearch.com/
      а не велоспиедить не вариант. Или весь полнотекстовый поиском ФИО ограничен ?
      Ответить
    • годный велосипед

      > не умеет в переменное количество параметров,
      а что мешает передать name1, name2, name3?
      Ответить
      • Да, сейчас пришли к тому, что лучше передавать три параметра и делать name1.isSubstr(fio) & name2...;
        Ответить

    Добавить комментарий