Hirdetés

Új hozzászólás Aktív témák

  • Sk8erPeter
    nagyúr

    Visszatértem ;]

    Egy újabb problémába futottam bele, de valószínűleg ez lesz most már az utolsó.
    Tehát:

    Van egy adott termék. Ez a termék lehetséges, hogy egyszerre több kategóriában is szerepel, mint pl. "Ragasztók" és "Ragasztók és tömítők".
    A kategóriákat '|' jellel elválasztva rakom be az adatbázisba, tehát ez a termék felvéve így néz ki a 'category_url' oszlopon belül:
    "Ragasztók|Ragasztók és tömítők"

    A honlapon egy menüpontra kattintva jelenleg így olvasom ki a termékeket pl:
    WHERE products.category_url LIKE '%Ragasztók%'

    Ezzel az a probléma, hogy ha a termék csak a "Ragasztók és tömítők" kategóriában szerepel, a "Ragasztók" kategóriában ugyanúgy meg fog jelenni, mivel megfelel a fenti feltételnek. Ha viszont ezt használom:
    WHERE products.category_url LIKE 'Ragasztók'
    Akkor meg csak azokat fogja mutatni, amik pontosan a 'Ragasztók' nevű kategóriával rendelkeznek.

    Én ez utóbbit preferálnám (tehát wildcard nélkül, hogy pontosak legyenek a találatok), de ehhez szét kellene valahogy szednem a mezőben megadott kategóriákat (amik jelenleg így néznek ki néha "Ragasztók|Ragasztók és tömítők").

    Ebben még tudtok segíteni? :F

    "A kategóriákat '|' jellel elválasztva rakom be az adatbázisba"
    Ez az, amit kerülj el, válaszd szét rendesen. Sok sort fog eredményezni, de az nem baj. Annyi sor lesz, ahány taget/terméket/akármit akarsz hozzákapcsolni az adott entitáshoz.

    Leegyszerűsítve:

    termékek tábla
    -----------------------
    id ; termék neve; kategóriák
    123 ; én termékem ; kategória1|kategória765

    HELYETT

    termékek tábla
    -----------------------
    id ; termék neve
    123; én termékem

    kategóriák tábla
    -----------------------
    id; kategória neve
    1; kategória1
    765; kategória765

    termékek-kategóriák összekapcsoló tábla
    -------------------------------
    id; termék_id; kategória_id
    1; 123; 1
    2; 123; 765

Új hozzászólás Aktív témák