Avatar billede thecodeman Nybegynder
25. maj 2003 - 17:57 Der er 6 kommentarer og
1 løsning

Søgning på samme felt i flere tabeller.

Jeg er i gang med at lave en online bookmarks side.

Man lægger bookmarks ind i kategorier, som man selv kan oprette, kategorierne får hver deres tabel "category1", "category2", o.s.v. tabellen catagories holder styr på disse tabellers navne.

nu vil jeg gerne kunne søge efter et bookmark, og jeg gør det at jeg kører en "select id" på categories, og bruger dem til at generere en sqlstreng som denne:

"SELECT category1.name, category2.name, ... FROM category1, category2, ... WHERE category1.name LIKE '%søgestreng%' OR category2.name LIKE '%søgestreng%' ..."

jeg lægger det hele ind i et recordset, men ligegyldigt hvad jeg søger efter så forbliver recordsetet tomt.

What to do, what to do...

Nogle gode forslag?
Avatar billede somaliomar Praktikant
25. maj 2003 - 18:12 #1
Mit forslag: først redesign databasen. Jeg siger det fordi det er uhensigtmæssigt at have så mange tabeller i en database. Det er både besværligt at vedligeholde og det er langsomt, hvis der er mange kategorier. I stedet kan du nøjes med tre tabeller:

Table 1: alle bookmarks
Tabel 2: alle kategorier
Table 3: link-tabel som kæder kategorierne og bookmarks'ene sammen

That's what to do...
Avatar billede hossein Nybegynder
25. maj 2003 - 18:12 #2
skal du ikke ændre ' med "
Avatar billede thecodeman Nybegynder
25. maj 2003 - 18:33 #3
Det må da kunne lade sig gøre på en eller anden måde...
Avatar billede thecodeman Nybegynder
25. maj 2003 - 19:27 #4
Hvad er formålet helt præcist med table 3? Svarer det ikke bare til at have et felt i bookmarks, der holder styr på i hvilken kategori dette ligger?
Avatar billede somaliomar Praktikant
25. maj 2003 - 19:32 #5
Jeg har allerede givet dig den ene (den bedste) løsning. Her kommer så den anden løsning:

"SELECT navn FROM category1 WHERE navn LIKE '%søgestreng%'
UNION SELECT navn FROM category2 WHERE navn LIKE '%søgestreng%'
UNION SELECT navn FROM category3 WHERE navn LIKE '%søgestreng%'"
Avatar billede somaliomar Praktikant
25. maj 2003 - 19:42 #6
Jo, men du kan også droppe tabel 3, hvis en bookmark kun kan have et kategori:

Tabel 1
id    bookmarkname      category
---------------------------------
1      Google                  1
2      MarkMus                1
3      Eksperten              2
4      Doros                    2
5      Jamaica                2
6      Notesblok              3


Tabel 2
id    categoryname
-------------------
1      Søgemaskiner
2      Forum
3      Eksperter
Avatar billede somaliomar Praktikant
02. juni 2003 - 21:14 #7
Hvilken løsning har du brugt?
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