Avatar billede gatez Nybegynder
06. marts 2003 - 13:29 Der er 13 kommentarer og
1 løsning

Database forbinelse

Hejsa,

Jeg har et lille problem... Jeg har et brugersystem hvor alle brugernes data ligger i en tabel i databasen der hedder "Bruger" og som bliver vist når de er logget ind, men på samme side skal der være en database forbinelse til en anden tabel i samme database der hedder "BrugerBiler" hvor der skal hentes alt data i cellen der hedder "BrugerId" hvor nummeret er det samme som brugerens ID.

Er det svært at forstå ? :-) Det håber jeg ikke...

Her er koden til den database forbinelse der henter brugerens informationer og brugerens ID:

-------------------------------------------
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("../database/bodykits.dk/brugersystem.mdb")
sql = "select * from bruger where brugernavn = '" & Session("brugernavn") & "'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql, conn, 1, 3
%>
<font face="Verdana" size="3" color="#C0C0C0">
<center><b>Du er logget ind som:  <%=RS("brugernavn")%></b></center>
</font>
<font face="Verdana" size="1">
Dit ID nummer er: <%=rs("Id")%>

<%
    rs.Update
    rs.Close
    Conn.Close
    Set rs = Nothing
    Set Conn = Nothing
%>

Her skal der så være en ny database forbinelse mere som udskriver alt data fra tabelen "BrugerBiler" hvor brugerens ID nummer står i cellen "BrugerId"
-----------------------------------

Tak!
Avatar billede eagleeye Praktikant
06. marts 2003 - 13:37 #1
Du fjerner dette kode:

<%
    rs.Update
    rs.Close
    Conn.Close
    Set rs = Nothing
    Set Conn = Nothing
%>

Og til føjer dette:

<%
id = Rs("id")
rs.Close

sql = "select * from brugerbiler where brugerid = " & id
rs.Open sql, conn, 1, 3
do while not rs.EOF
  'Så udksriver du de kolonne som er i brugerbiler
  Response.write rs("xxxxx")
 
  Response.write rs("yyyyy")


  rs.Movenext
loop
rs.Close
set rs = nothing
conn.Close
set conn = Nothing
Avatar billede carpediem Nybegynder
06. marts 2003 - 13:38 #2
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("../database/bodykits.dk/brugersystem.mdb")
sql = "select * from bruger where brugernavn = '" & Session("brugernavn") & "'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql, conn, 1, 3
intBrugerID = RS("ID")
strBrugernavn = RS("Brugernavn")
'Har rykket lukningen her op pga. performance
'rs.Update 'Ingen grund til update, når du ikke opdaterer noget i tabellen
rs.Close
%>
<font face="Verdana" size="3" color="#C0C0C0">
<center><b>Du er logget ind som:  <%=strBrugernavn%></b></center>
</font>
<font face="Verdana" size="1">
Dit ID nummer er: <%=intBrugerID>

<%
sql = "SELECT * FROM BrugerBiler WHERE BrugerId = " & intBrugerID
rs.Open sql, conn, 1, 3

rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
%>
Avatar billede gatez Nybegynder
06. marts 2003 - 13:43 #3
Til Carpediem:

Jeg for denne fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/loggetind.asp, line 22
Avatar billede gatez Nybegynder
06. marts 2003 - 13:47 #4
Til Eagleeye

Jeg får denne fejl ved dit script:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/loggetind.asp, line 70
Avatar billede carpediem Nybegynder
06. marts 2003 - 13:49 #5
Så er det fordi din ID ikke er et nummer?
sql = "SELECT * FROM BrugerBiler WHERE BrugerId = '" & intBrugerID & "'"
rs.Open sql, conn, 1, 3
Avatar billede gatez Nybegynder
06. marts 2003 - 13:52 #6
Yep nu kommer den ikke med nogle fejl sådan:

<%
sql = "SELECT * FROM BrugerBiler WHERE BrugerId = '" & intBrugerID & "'"
rs.Open sql, conn, 1, 3
%>

<% rs=("bilmarke")%>

<%

rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
%>

Men hvordan hiver jeg dataen ud ?
Avatar billede carpediem Nybegynder
06. marts 2003 - 13:54 #7
Ligesom du gjorde i den ovenfor
<%=rs("Bilmarke")
Avatar billede carpediem Nybegynder
06. marts 2003 - 13:54 #8
<%=rs("Bilmarke")%>
Avatar billede gatez Nybegynder
06. marts 2003 - 13:57 #9
Ok takker point til dig det virker nu....
Avatar billede carpediem Nybegynder
06. marts 2003 - 13:58 #10
takker
Avatar billede gatez Nybegynder
06. marts 2003 - 14:00 #11
Hvordan for man den til at fortælle noget hvis der ikke blev fundet noget ID i tabelen der passer ? Altså hvis brugerens ID ikke kan findes i den anden tabel skal den skrive:  "Der blev ikke fundet noget data"
Eller er det for svært ? :-)
Avatar billede carpediem Nybegynder
06. marts 2003 - 14:04 #12
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("../database/bodykits.dk/brugersystem.mdb")
sql = "select * from bruger where brugernavn = '" & Session("brugernavn") & "'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql, conn, 1, 3
intBrugerID = RS("ID")
strBrugernavn = RS("Brugernavn")
'Har rykket lukningen her op pga. performance
'rs.Update 'Ingen grund til update, når du ikke opdaterer noget i tabellen
rs.Close
%>
<font face="Verdana" size="3" color="#C0C0C0">
<center><b>Du er logget ind som:  <%=strBrugernavn%></b></center>
</font>
<font face="Verdana" size="1">
Dit ID nummer er: <%=intBrugerID>

<%
sql = "SELECT * FROM BrugerBiler WHERE BrugerId = '" & intBrugerID & "'"
rs.Open sql, conn, 1, 3
If NOT rs.EOF Then
  'Hvis der blev fundet noget
  %>
  Her vil vi gerne udskrive bilmærket: <%=rs("Bilmaerke")%>
  <%
Else
  'Hvis der ikke var nogle data på brugere
  %>
  Der blev ikke fundet noget data
  <%
End If
rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
%>
Avatar billede gatez Nybegynder
06. marts 2003 - 14:07 #13
1000 Mange gange tak :-) Det virker bare perfekt ! Takker!
Avatar billede carpediem Nybegynder
06. marts 2003 - 14:11 #14
velbekomme
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