01. oktober 2005 - 14:36Der er
7 kommentarer og 1 løsning
udtræk fra database?
Hej experter.
Jeg skal have hjælp til lidt asp og lidt database. Jeg har en tabel som hedder (Firma) og en anden tabel der hedder (emneord). Under (Firma) er der selvf. en masse kolonner med info og en kolonne med en ID (autogenereret). I (emneord)'s tabellen er der en kolonne med en masse emneord som dækker over hvad firmaerne sælger og en kolonne med (firmaid) hvor jeg har skrevet de firmaers id'er, som passer under det enkelte emneord. Jeg har så lavet en relation mellem kolonnen (firmaid) fra tabellen (Emneord) mellem kolonnen (ID) fra tabellen (Firma).
Hvis jeg så laver et udtræk fra databasen i tabellen (Emneord), og tager f.eks. emneordet [Aviser og Blade] .. Så har jeg udtrukket emneordet [Aviser og Blade] og firmaid'er [2, 24, 13] ... hvordan kan jeg så bruge de 3 firmaid'er til at finde butikkerne i den anden tabel og få udskrevet dem ?
"...butikkerne i den anden tabel...", det er så en tredie tabel som du ikke har beskrevet, eller hvad?
Jeg synes din beskrivelse af de to første tabeller var noget nær perfekt, men butikstabellen (hvis der altså findes sådan en), fik vi slet ikke noget info om og den lader da til at være rimelig vigtig i denne sammenhæng... :)
Anyway! Det lader til at du har begreb om databasedesign, så jeg antager at du har sørget for at lave en relation mellem butikker og firma og så er det vel bare et spørgsmål om at hente de butikker hvor firmaid er et af dem som du fandt udfra emneordene:
hehe det ser nu ud som om du har forstået "opgaven" godt nok. Det virker præcis som jeg ville have det til. Du er GUD softspot, tak for hjælpen .. du har lige reddet min weekend :D
Hehe det var nu et godt "shot" :) . Men du slipper ik lige for mig, fordi nu har jeg jo lige et enkelt spørgsmål,hvis det i orden, da jeg kunne se du ved en del om det.
Tabellen (emneord) som jeg snakkede om i mit første indlæg, indeholder som sagt en kolonne som indeholder emneord plus en kolonne som indeholder synonymer. Det kan nok lettest beskrives ved at sige, at der f.eks. i feltet emneord, står Biler og Tilbehør, og i feltet ved siden af, står der dæk, fælge, styling, bilrude osv. som jo alt sammen går ind under emneordet (Biler og Tilbehør). Nu vil jeg gerne have lavet en søgning, sådan at man kan søge efter emneord, men også synonymer. Så hvis jeg f.eks. søger efter dæk, så får jeg (Biler og Tilbehør) frem.
Lyder det for indviklet, eller har du en smart metode det kunne gøres på. Jeg har selv noget i tankerne, men jeg kunne godt tænke mig at høre hvordan du f.eks. ville gøre det :)
Jeg ville umiddelbart benytte mig af LIKE, da ordene vel står i en kommasepareret streng i feltet synonymer. Altså noget i stil med dette:
SELECT * FROM emneord WHERE ord LIKE '*dæk*' OR synonymer LIKE '*dæk*'
Hvis nu det er dæk man leder efter. Hvis der er indtastet flere ord man vil søge efter, ville jeg først i scriptet splitte ordene op og derefter generere en SQL som indeholdt alle ordene hver for sig. Eksempel:
søgning efter ruder, dæk, ventiler
ville resultere i flg. SQL:
SELECT * FROM emneord WHERE ord LIKE '*ruder*' OR synonymer LIKE '*ruder*' OR ord LIKE '*dæk*' OR synonymer LIKE '*dæk*' OR ord LIKE '*ventiler*' OR synonymer LIKE '*ventiler*'
Det er muligt at du skal benytte % i stedet for *, men du ved sikker allerede selv hvilken der skal benyttes... :)
Okay ja, det var noget lign. jeg havde tænkt mig at lave .. men det sidste med at splitte op lyder meget spændende, men nu må jeg se om jeg kan få det til at virke her senere. Men igen, mange tak for hjælpen softspot :)
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.