Fix search on first character
authorx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Thu, 26 Apr 2007 11:38:20 +0000 (11:38 +0000)
committerx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Thu, 26 Apr 2007 11:38:20 +0000 (11:38 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1736 839d8a87-29fc-0310-9880-83ba4fa771e5

modules/search/classes.inc.php

index e650e57..a23853b 100644 (file)
@@ -249,7 +249,7 @@ class QuickSearch extends SField
     {
         $where = Array();
         foreach ($this->strings as $i => $s) {
-            if (Env::i('with_soundex')) {
+            if (Env::i('with_soundex') && strlen($s) > 1) {
                 $t = soundex_fr($s);
                 $where[] = "sn$i.soundex = '$t'";
             } else {
@@ -285,11 +285,14 @@ class QuickSearch extends SField
     {
         $join = "";
         $and  = '';
+        $uniq = '';
         foreach ($this->strings as $i => $s) {
             if (!S::logged()) {
                 $and = "AND FIND_IN_SET('public', sn$i.flags)";
-            } 
-            $join .= "INNER JOIN search_name AS sn$i ON (u.user_id = sn$i.uid $and)\n";
+            }
+            $myu  = str_replace('snv', "sn$i", $uniq);
+            $join .= "INNER JOIN search_name AS sn$i ON (u.user_id = sn$i.uid $and$myu)\n";
+            $uniq .= " AND sn$i.token != snv.token";
         }
         return $join;
     }