diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2014-10-24 17:23:55 +0200 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2014-10-24 17:23:55 +0200 |
| commit | 16bb2f544c636425ed9e6bff90654b8fa3c0f2e3 (patch) | |
| tree | 51d12b734fe762750299d5be5ae95cc95845c4ef /lib/notestorage.php | |
| parent | 2b5ff5d48b4ec80e0e0e18188689edefaeefe91d (diff) | |
| download | grauphel-16bb2f544c636425ed9e6bff90654b8fa3c0f2e3.tar.gz grauphel-16bb2f544c636425ed9e6bff90654b8fa3c0f2e3.zip | |
support query splitting and quoting and search content and tags
Diffstat (limited to 'lib/notestorage.php')
| -rw-r--r-- | lib/notestorage.php | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/notestorage.php b/lib/notestorage.php index 951bf06..67baa20 100644 --- a/lib/notestorage.php +++ b/lib/notestorage.php @@ -274,17 +274,27 @@ class NoteStorage /** * Search for a note * - * @param string $query Query string + * @param string $keywords AND-concatenated query strings * * @return array Database rows with note_guid and note_title */ - public function search($query) + public function search($keywords) { + $sqlWhere = ' AND (note_title LIKE ? OR note_tags LIKE ? OR note_content LIKE ?)'; + $arData = array( + $this->username + ); + foreach ($keywords as $keyword) { + $arData[] = '%' . $keyword . '%';//title + $arData[] = '%' . $keyword . '%';//tags + $arData[] = '%' . $keyword . '%';//content + } $result = \OC_DB::executeAudited( 'SELECT `note_guid`, `note_title`' . ' FROM `*PREFIX*grauphel_notes`' - . ' WHERE note_user = ? AND note_title LIKE ?', - array($this->username, '%' . $query . '%') + . ' WHERE note_user = ?' + . str_repeat($sqlWhere, count($keywords)), + $arData ); $notes = array(); |
