Search engine fix because Directory did a 'join'

Colliding columns with a very lacking error message from DB ;)
This commit is contained in:
Mikael Nordfeldth 2015-10-10 12:16:12 +02:00
parent 6376b78a80
commit 2ad7c4313d
1 changed files with 9 additions and 7 deletions

View File

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