Kereső egyszerűbben?
Sziasztok!
Készítettem egy keresőt, amivel az adatbázisomban szeretnék kutakodni.
Több opciós, 5 kritérium alapján lehet keresni, 8 kombinációban.
Ebből adódóan ez most egy elég terjedelmes if-elsif szerkezet lett, a feltételekből generálom a különböző query-ket. ( a POST adatokat vizsgálom empty ill. !empty -vel )
pl:Van erre esetleg egyszerűbb, tömörebb módszer?
Nézelődök egy ideje, de nem sok mindent találtam.
Ötlet?
Köszi üdv!
■ Készítettem egy keresőt, amivel az adatbázisomban szeretnék kutakodni.
Több opciós, 5 kritérium alapján lehet keresni, 8 kombinációban.
Ebből adódóan ez most egy elég terjedelmes if-elsif szerkezet lett, a feltételekből generálom a különböző query-ket. ( a POST adatokat vizsgálom empty ill. !empty -vel )
pl:
if ( empty( $name ) &&
empty( $city ) &&
empty( $status ) &&
!empty( $cat ) &&
!empty( $prom )
)
{ //QUERY
}
elseif (...)
Nézelődök egy ideje, de nem sok mindent találtam.
Ötlet?
Köszi üdv!
UI:
Ahhoz, hogy erre válaszolni
Amit javaslok, indulj ki abból, ha nem üres a változód, akkor beleteszel az sql-be egy extra where feltételt ("OR" vagy "AND" el hozzákapcsolva, attól függ mit szeretnél, szűkíteni vagy bővíteni a keresésen).
Ha keresés beírásánál feltétel az, hogy ki legyen töltve x, y mező, z pedig ne, az már form validálás kérdése és a kódban hamarabb kezeld le.
Igazad van valóban kevés ez
Ezeket szeretném lekérni a db -ből az előbbi kritériumok alapján. Tehát egy eset: az összeset Budapestről. Ekkor ugye csak város fog érkezni a többi üres. Vagy: Budapest - Kat.: 2 - Státusz: 3 . Vagy csak kat. esetleg csak státusz és így tovább.
UI:
dehogynem
select
mező volt, 2 kattintással csinálok belőle simatext
mezőt. Úgyhogy mindenképpen kell validálni.:)
DE amúgy igazad van KELL a validálás! Pontosítom magam, a keresési mechanizmust próbálom csiszolni, aztán a validálással foglalkozni. Nem éles oldal.
Esetleg észrevétel?
Foreach
Ez így szimpatikusabb, rövidebb és elvileg az eredménye is, úgy néz ki, ugyan az. :)
De továbbra is érdekelne, milyen bevett módszer(ek) vannak esetleg egy ilyen keresőre.
teljesen jó az ötlet
if($value) itt is inkább if(!empty($value) (string "0" == false)
a query where részének elemeit egy tömbe gyüjtsd, majd implod és kész a where rész
Nem ugyanaz?
( $this->db->where( $key , $value );
és utánuk már megy is az egy lekérdezés.
( $this->db->get('tábla'); )
Köszi az áttekintést!
Nem
empty
igazat ad vissza akkor is, ha a változó nem létezik, és ekkor nem dobE_NOTICE
típusú hibaüzenetet.Ha jól értelek
Erre gondoltál? Na ezt akkor rosszul tudtam. Köszönöm! Mindjárt ki is próbálom.
Másik alternatíva
Szerk.: lehet, hogy ez csak tárolt eljárásnál mehet így, akkor neked nem jó ide.
Így használom jelenleg:
Szerk.: miért duplázza meg a kódszínező az empty -ket? Lehet hogy béna vagyok, de nem jöttem még rá!
Továbbá validálás nélküli és ebben a formában, ugye ha simán üres változókat kap, kizárólag az else ág utolsó sora fut le, azaz megkapok mindent a DB -ből. Sajna kevés időm volt rá az elmúlt pár napban, most próbálom meg összerakni teljesen.
Kösz. Üdv!