From 2ad7c4313db80afb6990d993a9b92dd5705c7691 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Sat, 10 Oct 2015 12:16:12 +0200 Subject: [PATCH] Search engine fix because Directory did a 'join' Colliding columns with a very lacking error message from DB ;) --- lib/search_engines.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/search_engines.php b/lib/search_engines.php index 7f1684a3e7..6cb2ebcfd5 100644 --- a/lib/search_engines.php +++ b/lib/search_engines.php @@ -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 {