- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Geri Bátyó: Agglegénykonyha 13 – Néhány egyszerű, de finom étel
- Magga: PLEX: multimédia az egész lakásban
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
- sziku69: Fűzzük össze a szavakat :)
- Geri Bátyó: Régi VGA, HDMI és a felbontás
- Lalikiraly: Commodore The C64, Ultimate
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Ú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
- Kés topik
- A Razer új klaviatúra-zászlóshajóját meglátva biztos félrenyeled a teát
- Kecskemét és környéke adok-veszek-beszélgetek
- Fejhallgató erősítő és DAC topik
- Modding és elektronikai kérdések
- World of Tanks - MMO
- TCL LCD és LED TV-k
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Vezeték nélküli fülhallgatók
- VGA kibeszélő offtopik
- További aktív témák...
- Ryzen 7 9700x AM5 CPU - garancia 2028.05. hóig
- Philips Evnia 27M2N8500 QD-OLED monitor 1440p 360Hz ALZA garancia
- MacBook Air (2020) M1 processzor, 8GB RAM, 256 GB kiváló állapotban eladó
- Felújított (Refurbished) DELL Latitude 5440 Tartós Üzleti Laptop 14" -40% i5-1345U 10Mag 16/512 FHD
- Xiaomi Poco Pad 256GB blue
- Gamer PC-Számítógép! Csere-Beszámítás! R5 2600 / RX 5700XT 8GB / 16GB DDR4 / 256SSD + 1TB HDD!
- Apple iPhone 13 Pro Max 128GB,Átlagos,Dobozaval,12 hónap garanciával
- Nothing Phone 1 / 8/256GB / Kártyafüggetlen / 12HÓ Garancia
- iPhone 16 Pro Max 256GB 92% (1év Garancia)
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest

