]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Search engine fix because Directory did a 'join'
authorMikael Nordfeldth <mmn@hethane.se>
Sat, 10 Oct 2015 10:16:12 +0000 (12:16 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Sat, 10 Oct 2015 10:16:12 +0000 (12:16 +0200)
Colliding columns with a very lacking error message from DB ;)

lib/search_engines.php

index 7f1684a3e756b0a2cd7ea3b4ba79970bb4486915..6cb2ebcfd53929fa977fd64a7b866cef8be8d8c5 100644 (file)
@@ -54,7 +54,7 @@ class SearchEngine
                     'nickname_desc sort mode can only be use when searching profile.'
                 );
             } else {
-                return $this->target->orderBy('nickname DESC');
+                return $this->target->orderBy(sprintf('%1$s.nickname DESC', $this->table));
             }
             break;
         case 'nickname_asc':
@@ -63,7 +63,7 @@ class SearchEngine
                     'nickname_desc sort mode can only be use when searching profile.'
                 );
             } else {
-                return $this->target->orderBy('nickname ASC');
+                return $this->target->orderBy(sprintf('%1$s.nickname ASC', $this->table));
             }
             break;
         default:
@@ -112,11 +112,13 @@ class MySQLLikeSearch extends SearchEngine
     function query($q)
     {
         if ('profile' === $this->table) {
-            $qry = sprintf('(nickname LIKE "%%%1$s%%" OR '.
-                           ' fullname LIKE "%%%1$s%%" OR '.
-                           ' location LIKE "%%%1$s%%" OR '.
-                           ' bio      LIKE "%%%1$s%%" OR '.
-                           ' homepage LIKE "%%%1$s%%")', $this->target->escape($q, true));
+            $qry = sprintf('(%2$s.nickname LIKE "%%%1$s%%" OR '.
+                            ' %2$s.fullname LIKE "%%%1$s%%" OR '.
+                            ' %2$s.location LIKE "%%%1$s%%" OR '.
+                            ' %2$s.bio      LIKE "%%%1$s%%" OR '.
+                            ' %2$s.homepage LIKE "%%%1$s%%")',
+                           $this->target->escape($q, true),
+                           $this->table);
         } else if ('notice' === $this->table) {
             $qry = sprintf('content LIKE "%%%1$s%%"', $this->target->escape($q, true));
         } else {