- Elektromos rásegítésű kerékpárok
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Navaren: Resident Evil Requiem szösszenet
- Magga: PLEX: multimédia az egész lakásban
- balojazz: Szódakészítés üzembiztosan és olcsón! Figyelem, csak hardcore szódázóknak!
- suste: Openwrt Barrier Breaker 14.07 saját verzió Tp-link routerekre
- Gurulunk, WAZE?!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
Új hozzászólás Aktív témák
-
bambano
titán
válasz
csabyka666
#2177
üzenetére
a dolog lényege, hogy php-ben összefaragod stringműveletekkel a keresési feltételt, és utána egy keresést futtatsz, mert ha több utasításban keresel, akkor a distinctből falra hányt borsó lesz.
azt nem értettem eddig a kérdésedben, hogy neked a keresőszót több mezőn is egyszerre kellene értelmezni, eddig azt hittem, csak egyen.
erre meg az a megoldás, hogy az adatbáziskezelővel összerakatod egy stringbe az összes mezőt, amiben keresni akarsz, és arra adod meg a kereső kifejezést.tehát ha van mondjuk egy név, egy leírás, egy gyártó meződ, akkor valahogy így:
név||'|'||leírás||'|'||gyártó like '%elsőkeresőszó%' (postgresql szintaktikával, a || a postgresben string konkatenáció)
és ebből csinálsz logikai vagy-gyal függvényt. vagy csinálni kell rá egy nézettáblát, amin keresel, az lehet, gyorsabb.
magyarul keresel egy olyan karaktert, ami biztosan nem fordul elő az adatokban, hogy elválaszd a szavakat (nekem erre a csővezetékjel a kedvenc), és az összes mező tartalmát összerakod egy stringbe ezzel a jellel elválasztva, majd ezen a stringen csinálod a like-ot. ez egy logikai kifejezés, ebből csinálsz vagy-gyal egy végső logikai kifejezést.
másik, nem annyira elegáns megoldás, ha csinálsz egy külön táblát, amibe ideiglenesen tárolod a keresések részhalmazait, csak akkor ott figyelni kell rá, hogy párhuzamos használat esetén mi lesz.
szóval egy táblába beleszórod azokat az azonosítókat, amely rekordokban az aktuális keresőszó megvan, majd csinálsz egy selectet belőle, distinct-tel, valahogy így:for i in (keresendő szavak listája sorban); do
for j in (keresett mezők listája sorban); do
sql="insert into temptabla (id) select id from tabla where $j like '%$i%';
done
done
select distinct id from temptabla;ez nyilván nem helyes program, csak egy utalás arra, hogy hogyan kellene. szerintem ez a második megoldás kicsit parasztos, de mindegy...
Új hozzászólás Aktív témák
- Futás, futópályák
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Androidos tablet topic
- Xiaomi 17 - még mindig tart
- Nem fut az Intel grafikus vezérlőin az év egyik legjobban várt címe
- Kerékpárosok, bringások ide!
- Crimson Desert
- PlayStation 5
- Fogyjunk le!
- 5.1, 7.1 és gamer fejhallgatók
- További aktív témák...
- HP EliteBook 840R G4, 14" FHD, i5-8350 CPU, 8-16GB DDR4, 128GB - 1TB SSD, 4G/LTE W11, Számla, 1 év g
- GARIS / ITX méregzsák - AMD Ryzen 9 7900 / 32GB / RTX 5070 / stb...
- HP Z240 munkaállomás (több darab) (Intel Core I7-6700, 8GB DDR4)
- Precision 5560 15.6" FHD+ IPS i7-11850H RTX A2000 32GB 512GB NVMe magyar vbill gar
- Samsung Galaxy A55 - 256 GB - kék (311) Újszerű, 10000 Ft kiegészítő ajándék, Garancia
- 27% Számlával! ASUS ROG Loki 1000W 80 PLUS Platinum Tápegység!
- Nvidia Quadro P400/ P620/ P1000/ T400/ T1000 - Low profile (LP) + RTX A2000 6/12Gb
- ÓRIÁSI AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- 27% - DDR5 Notebook 16GB / 32GB / 48GB RAM
- Apple iPhone 15 Pro Max / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku:89%
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
