From 1d32a44fcf8c4622fd2b2bc8179df83561119449 Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 9 Mar 2017 14:20:06 +0100 Subject: [PATCH] =?UTF-8?q?Performance=20Verbesserung=20beim=20Suchen=20vo?= =?UTF-8?q?n=20Projektbetreuern/Pr=C3=BCfern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rdf/person.rdf.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/rdf/person.rdf.php b/rdf/person.rdf.php index ed7a830e2..8da9cd926 100644 --- a/rdf/person.rdf.php +++ b/rdf/person.rdf.php @@ -54,21 +54,29 @@ echo ' '; +$db = new basis_db(); //$filter = utf8_encode($filter); $qry = "SELECT distinct person_id, vorname, nachname, titelpre, titelpost, CASE - WHEN (SELECT count(*) FROM public.tbl_benutzer JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) WHERE person_id=tbl_person.person_id)>0 THEN 'Mitarbeiter' - WHEN (SELECT count(*) FROM public.tbl_benutzer JOIN public.tbl_student ON(uid=student_uid) WHERE person_id=tbl_person.person_id)>0 THEN 'Student' + WHEN EXISTS (SELECT 1 FROM public.tbl_benutzer JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) WHERE person_id=tbl_person.person_id) THEN 'Mitarbeiter' + WHEN EXISTS (SELECT 1 FROM public.tbl_benutzer JOIN public.tbl_student ON(uid=student_uid) WHERE person_id=tbl_person.person_id) THEN 'Student' ELSE 'Person' END as status - FROM public.tbl_person WHERE nachname ~* '".addslashes($filter).".*' ORDER BY nachname, vorname, titelpre, titelpost"; + FROM + public.tbl_person + WHERE + lower(nachname) like '%".$db->db_escape(mb_strtolower($filter))."%' + OR + lower(nachname || ' ' || vorname) like '%".$db->db_escape(mb_strtolower($filter))."%' + OR + lower(vorname || ' ' || nachname) like '%".$db->db_escape(mb_strtolower($filter))."%' + ORDER BY nachname, vorname, titelpre, titelpost"; if(isset($_GET['nurmittitel'])) { $qry.=" AND (titelpre<>'' OR titelpost<>'')"; } -$db = new basis_db(); if($result = $db->db_query($qry)) {