/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Søgning i flere tabeller
Fra : Michael Tillgaard


Dato : 23-09-07 10:06

Jeg er ved at lave en simpel søge form, der skal søge i to
tabeller på en gang.
En tabel er ok, men hvordan får jeg det til at virke med to
tabeller?
Den ene tabel hedder Tekst og skal søge i Broedtekst.
Den anden tabel hedder Undermenu og skal søge i Broedtekst.
Jeg bruger følgende til søgningen:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.Mappath("/database.mdb")
SQL = " SELECT *" &_
" FROM Tekst " &_
" WHERE Broedtekst like '%" & titel & "%' "

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
simsen (23-09-2007)
Kommentar
Fra : simsen


Dato : 23-09-07 10:25

> En tabel er ok, men hvordan får jeg det til at virke med to
> tabeller?

SELECT Tekst.Broedtekst, Undermenu.Broedtekst FROM, Tekst, Undermenu WHERE
Tekst.Broedtekst like '%" & titel & "%' OR Undermenu.Broedtekst like '%" &
titel & "%'

Her får du alle felter ud, hvor der er noget i Broedtekst både for Tekst og
Undermenu tabellerne.

mvh
simsen

"Michael Tillgaard" <post@multibook.dk> wrote in message
news:46f62c7b$0$90271$14726298@news.sunsite.dk...
> Jeg er ved at lave en simpel søge form, der skal søge i to
> tabeller på en gang.
> En tabel er ok, men hvordan får jeg det til at virke med to
> tabeller?
> Den ene tabel hedder Tekst og skal søge i Broedtekst.
> Den anden tabel hedder Undermenu og skal søge i Broedtekst.
> Jeg bruger følgende til søgningen:
>
> Set Conn = Server.CreateObject("ADODB.Connection")
> Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" &
> Server.Mappath("/database.mdb")
> SQL = " SELECT *" &_
> " FROM Tekst " &_
> " WHERE Broedtekst like '%" & titel & "%' "
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials



Michael Tillgaard (23-09-2007)
Kommentar
Fra : Michael Tillgaard


Dato : 23-09-07 10:40

simsen wrote in dk.edb.internet.webdesign.serverside.asp:
> > En tabel er ok, men hvordan får jeg det til at virke med to
> > tabeller?
>
> SELECT Tekst.Broedtekst, Undermenu.Broedtekst FROM, Tekst, Undermenu WHERE
> Tekst.Broedtekst like '%" & titel & "%' OR Undermenu.Broedtekst like '%" &
> titel & "%'
>
> Her får du alle felter ud, hvor der er noget i Broedtekst både for Tekst og
> Undermenu tabellerne.
>
> mvh
> simsen

Tak for dit svar

Prøvede også dette med held:

Set    Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.Mappath("/ejsboelhus.mdb")
SQL1 = " SELECT *" &_
" FROM Tekst " &_
" WHERE Broedtekst like '%" & titel & "%' "
SQL2 = " SELECT *" &_
" FROM Undermenu " &_
" WHERE Broedtekst like '%" & titel & "%' "
Set RS = Conn.Execute(SQL1)
Set RS = Conn.Execute(SQL2)

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Michael Tillgaard (23-09-2007)
Kommentar
Fra : Michael Tillgaard


Dato : 23-09-07 12:33

Klip
Var lidt for hurtig. Det virker ikke :(
Der kommer alt for meget ud og indtil flere gange. Hvad gør jeg galt?
Sådan ser det ud:
<%
if request.querystring("vis") = "soegeresultat" then
titel = request.form("titel")
if titel = "" then titel = "Du indtastede ikke noget søgeord her."
%>
<p>Du har s&oslash;gt efter
ordet:&nbsp;<%=titel%></p>
</p>
<%   
Set    Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.Mappath("/ejsboelhus.mdb")
SQL = "SELECT Tekst.Broedtekst, Undermenu.Broedtekst FROM Tekst, Undermenu WHERE
Tekst.Broedtekst like '%" & titel & "%' OR Undermenu.Broedtekst like '%" & titel
& "%' "
Set RS = Conn.Execute(SQL)
count = 0
if RS.eof then
response.write "<p><b>0 resultater</b></p>"
end if
   Do While Not RS.EOF
   count = count + 1
   %>
<p>
<B>Søgeresultat <%=count%>.</B><br>
<div class="maintext"><%=RS("Broedtekst")%></div>
</p>
<p>
<% RS.MoveNext
Loop

RS.close
set RS = nothing
Conn.close
set Conn = nothing %>
<% if count <> 0 then %>
</p>

<P>Der var i alt <%=count%> resultat der matchede din søgning.</P>
<% end if %>
<% else %>

<br>
<% end if %>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (23-09-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 23-09-07 15:00

simsen skrev:

> SELECT Tekst.Broedtekst, Undermenu.Broedtekst FROM, Tekst,
> Undermenu WHERE Tekst.Broedtekst like '%" & titel & "%' OR
> Undermenu.Broedtekst like '%" & titel & "%'
>
> Her får du alle felter ud, hvor der er noget i Broedtekst både
> for Tekst og Undermenu tabellerne.

Ja - men hvert resultat fra den ene tabel parres med samtlige
rækker i den anden - hvad der ikke er så hensigtsmæssigt. Se andet
indlæg for en mulig løsning.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens Gyldenkærne Cla~ (23-09-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 23-09-07 14:58

Michael Tillgaard skrev:

> Jeg er ved at lave en simpel søge form, der skal søge i to
> tabeller på en gang.

Hvordan er de to tabeller relateret? Med andre ord - hvad gemmer du
hhv. i Tekst og i Undermenu?

Hvis det samme slags data, kan du benytte en UNION-forespørgsel -
omend det i mange tilfælde vil være bedre at ændre din datastruktur
så de to brødtekstfelter bliver samlet i én tabel.

Et eksempel på en union-forespørgsel:


SELECT tekstID as ID, "t" as tabel, Broedtekst
FROM Tekst
WHERE Broedtekst LIKE '%foo%'
UNION ALL
SELECT undermenuID, "u", Broedtekst
FROM Undermenu
WHERE Broedtekst LIKE '%foo%'
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Michael Tillgaard (23-09-2007)
Kommentar
Fra : Michael Tillgaard


Dato : 23-09-07 16:15

Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> Michael Tillgaard skrev:
>
> > Jeg er ved at lave en simpel søge form, der skal søge i to
> > tabeller på en gang.
>
> Hvordan er de to tabeller relateret? Med andre ord - hvad gemmer du
> hhv. i Tekst og i Undermenu?
>
> Hvis det samme slags data, kan du benytte en UNION-forespørgsel -
> omend det i mange tilfælde vil være bedre at ændre din datastruktur
> så de to brødtekstfelter bliver samlet i én tabel.
>
> Et eksempel på en union-forespørgsel:
>
>
> SELECT tekstID as ID, "t" as tabel, Broedtekst
> FROM Tekst
> WHERE Broedtekst LIKE '%foo%'
> UNION ALL
> SELECT undermenuID, "u", Broedtekst
> FROM Undermenu
> WHERE Broedtekst LIKE '%foo%'
> --
> Jens Gyldenkærne Clausen
> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html

Tak for dit svar.
Fik det til at virke rigtigt fint med UNION ALL.
Det er kun tekst i de to tabeller, men at få dem samlet i en tabel er
lidt sent for mig nu.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste