Avatar billede loukas Mester
07. oktober 2006 - 01:14 Der er 6 kommentarer og
1 løsning

vare søgning i webshop

Jeg har lavet den her webshop hvor jeg gerne vil have lavet en ordentlig søgefunktion.
Hver varer har data i flere forskellige tabeller f.eks varianter(farver og størrelser), leverandor og kategori
Tabellerne er som følger.
-VARER-
vareid
varenavn
varebeskrivelse
salgspris

-LEVERANDOR-
leveranID
leverandorNavn

-VARER2VARIANTER-
vareID
variantID
indhold

-VARERVARIANTER-
variantID
variantnavn

-KATEGORIER-
varekategoriID
Kategori

Der skal kunne søges på f.eks.: hvid skjorte
Hvid er en variant og ligger i tabellen VARR2VARIANTER og skjorte ligger typisk i tabellen VARER.varenavn

Hvordan gør jeg lige ?!?!
Avatar billede keysersoze Ekspert
07. oktober 2006 - 01:34 #1
selve søgefunktionen kan du få meget idé til her; http://activedeveloper.dk/articles/60/

Opbygningen af din sql (joins osv) har du formentlig allerede og ellers kan din database-frontend formentlig hjælpe dig med at lave et view/forespørgsel. Til sidst er bare at definere i din sql hvilke kolonner og hvilke sammenhænge der skal være i forhold til søgeord.
Avatar billede loukas Mester
07. oktober 2006 - 16:21 #2
Jeg har prøvet lidt her
Men jeg får samme vare ud flere gange fordi der er flere poster med samme vareid i VARER2VARIANTER
Jeg er helt med på at bruge  LIKE %% osv.

SELECT Varer.varenavn, Varer.varebeskrivelse, Varer.slettet, varer2varianter.indhold, Kategorier.Kategori, leverandor.leverandorNavn, Varer.vareid
FROM leverandor INNER JOIN (Kategorier INNER JOIN (VareVarianter INNER JOIN (Varer INNER JOIN varer2varianter ON Varer.vareid = varer2varianter.vareID) ON VareVarianter.variantID = varer2varianter.variantID) ON Kategorier.varekategoriID = Varer.VareKategoriID) ON leverandor.leveranID = Varer.LeveranDorID
WHERE (((Varer.slettet)=False));
Avatar billede keysersoze Ekspert
07. oktober 2006 - 18:25 #3
der er utallige muligheder alt afhængig af formålet - hvis tabellen ikke er nødvendig så undlad den i join, brug distinct, brug korrekt AND/OR i din where-statement...
Avatar billede loukas Mester
07. oktober 2006 - 20:03 #4
Jeg prøver lige igen, sætningen her giver samme vare flere gange, hvilket ikke er godt. Hvordan undgår jeg det ??
SELECT DISTINCT Varer.varenavn, Varer.varebeskrivelse, Varer.slettet, varer2varianter.indhold, Kategorier.Kategori, leverandor.leverandorNavn, Varer.vareid
FROM leverandor INNER JOIN (Kategorier INNER JOIN (VareVarianter INNER JOIN (Varer INNER JOIN  varer2varianter ON Varer.vareid = varer2varianter.vareID) ON VareVarianter.variantID = varer2varianter.variantID) ON Kategorier.varekategoriID = Varer.VareKategoriID) ON leverandor.leveranID = Varer.LeveranDorID
WHERE (((Varer.varenavn) Like "*jeans*") AND ((Varer.slettet)=False));
Avatar billede loukas Mester
07. oktober 2006 - 22:59 #5
OK, tak for hjælpen.
Jeg prøver med et nyt spørgsmål, helt fra bunden
Avatar billede keysersoze Ekspert
08. oktober 2006 - 01:22 #6
sikke dårlige tålmodighed - det minimerer i hvert fald min hjælpevillighed så held og lykke fremover...
Avatar billede loukas Mester
08. oktober 2006 - 13:48 #7
Sorry,
jeg blev lige grebet af et anfald utålmodighed i går aftes.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester