Avatar billede dtc Nybegynder
17. april 2002 - 08:54 Der er 32 kommentarer og
1 løsning

Udtræk fra flere tabeller......

Min kode ser således ud:

<%
Response.Buffer = True
SET rs = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB.mdb")

if request("Mode") = "logaf" then
session.Abandon
Response.Redirect("default.asp")
end if

' Chekker om brugeren har en session.
' Hvis ikke så smides han af
IF Session("password-session") = "" Then
Response.Redirect("Default.asp")
end if

Sql = "Select * FROM users WHERE username = '" & session("password-session") & "'"
set rs = rs.Execute(SQL)

%>

Nu har jeg brug for at trække data ud fra en anden tabel (service) i databasen - på den måde at når kunde 74626262 er logget på og kan klikker på eks. "data" - så skal han få en liste over de data der står ud for hans kundenummer (74626262) i tabellen service!!!!

Hvordan gør man det??? Jeg er ret ny i ASP - så derfor driller det lidt.......
Avatar billede cthun Nybegynder
17. april 2002 - 09:02 #1
strSQL = "select * from tabel where user = '" & session("user") "'"

er det, det du mener??
Avatar billede kube Nybegynder
17. april 2002 - 09:03 #2
select *
from service
where service.user=users.user
Avatar billede cthun Nybegynder
17. april 2002 - 09:04 #3
Så skriver du bare...

f.eks.

response.write rs("name")


så vil du få navnet på personen where username = "et-eller-andet"
Avatar billede eagleeye Praktikant
17. april 2002 - 09:10 #4
Jeg vil omdøbe Connection til conn og ikke rs som normalt er et recordeset og du overskriver også connection med et recordset i linien: "set rs = rs.Execute(SQL)"

SET conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB.mdb")

Sql = "Select * FROM users WHERE username = '" & session("password-session") & "'"
set rs = Conn.Execute(SQL)

strSQL = "SELECT* FROM service WHERE username = '" & rs("username") "';"

set rsService = conn.execute(strSQL)

do while not rsService.EOF
  resposne.write "data:" & rsService("FELTNANV") &"<br>"
  rsService.movenext
loop
Avatar billede dtc Nybegynder
17. april 2002 - 09:10 #5
Kube:

sådan her????

<%
Response.Buffer = True
SET rs = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB.mdb")

if request("Mode") = "logaf" then
session.Abandon
Response.Redirect("default.asp")
end if

' Chekker om brugeren har en session.
' Hvis ikke så smides han af
IF Session("password-session") = "" Then
Response.Redirect("Default.asp")
end if

Sql = "Select * FROM users WHERE username = '" & session("password-session") & "'"
set rs = rs.Execute(SQL)
Sql = "Select * FROM service WHERE service.username = 'users.username'"
set rs = rs.Execute(SQL)
%>

Hvad skal jeg skrive for at sætte poster ind fra servicetabellen?

Jeg har et felt der hedder test  - <% = rs("test") %>

?????????????????????
Avatar billede eagleeye Praktikant
17. april 2002 - 09:12 #6
Med denne SQL:
Sql = "Select * FROM service WHERE service.username = 'users.username'"

Får du ALLE poster fra service og IKKE kun dem som tilhøre den bruger der er logget ind.
Avatar billede eagleeye Praktikant
17. april 2002 - 09:13 #7
du skal bruge det username du hendter ud fra databasen tabllen user til at begrænse til de rigtige record i service:

strSQL = "SELECT* FROM service WHERE username = '" & rs("username") "';"
Avatar billede dtc Nybegynder
17. april 2002 - 09:19 #8
Eagleeye....

jeg har prøvet at sætte din kode ind - men det virker ikke....
Hvad gør jeg galt?????

do while not rsService.EOF
  resposne.write "data:" & rsService("FELTNANV") &"<br>"
  rsService.movenext
loop

Der hvor du skriver FELTNAVN - hvad skal jeg da sætte ind???
Avatar billede eagleeye Praktikant
17. april 2002 - 09:21 #9
Denne:
resposne.write "data:" & rsService("FELTNANV") &"<br>"

Skal laves om til en linie som udskrkiver de kolonner fra service som er relavandte. Jeg kender ikke din service tabe men du kan evt udskrive username:

resposne.write "data:" & rsService("username") &"<br>"
Avatar billede eagleeye Praktikant
17. april 2002 - 09:22 #10
et record set er i stil med en tabel i en dabase den inde alle de kolonne du ber om at få hendtet via SQL SELECT * FROM ... (* = alle).
Så hvis du har en kolonne servicenavn kan du udeskrive den på denne måde:
response.write rs("servicenavn")
Avatar billede eagleeye Praktikant
17. april 2002 - 09:27 #11
du skrev du ville havde en lsite "...så skal han få en liste over de data der står ud for hans kundenummer (74626262) i tabellen service"
Det du skal udskrive i loop'et er den liste men jeg ved som sagt ikke hvilke kolonner du har og hovordan listen skal se ud..

do while not rsService.EOF
  'Lav en linie i listen her
  rsService.movenext
loop


du kan pakke det fint ind i en tabel:

<tabel>
<%
do while not rsService.EOF
  resposne.write "<tr>"
  resposne.write "<td>Produkt navn</td>
  resposne.write "<td>"&rs("produktnavn")&"</td>" 'produktnavn som eks.
  resposne.write "</tr>"
  rsService.movenext
loop
%>
</tabel>


Så det er op til hvordan din liste skal se ud + hvilke kolonner listen skal laves ud fra.
Avatar billede dtc Nybegynder
17. april 2002 - 09:30 #12
Hmmmmm....hele min kode ser således ud......men det virker ikke!

<%
SET conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB.mdb")

Sql = "Select * FROM users WHERE username = '" & session("password-session") & "'"
set rs = Conn.Execute(SQL)

strSQL = "SELECT* FROM service WHERE username = '" & rs("username") "';"

set rsService = conn.execute(strSQL)
%>


<TITLE>Servicemodul</TITLE>
<style type="text/css">
<!--body    {  font-family: Verdana, Serif; font-size: 8pt; color: #000000; text-decoration: none;}
td                  {  font-family: Verdana, Serif; font-size: 8pt; color: #000000; text-decoration: none;}
a                    {  font-family: Verdana, Serif; font-size: 8pt; color: #000000; text-decoration: none;}
a:hover      {  font-family: Verdana, Serif; font-size: 8pt; color: #000000; text-decoration: bold; cursor: hand}
-->
</style>
<BODY BGCOLOR="#9ABCDE">
<TABLE WIDTH="100%" HEIGHT="100%" BORDER="0" CELLSPACING="0" ALIGN="CENTER"><TR><TD><DIV ALIGN="CENTER"><P><%  response.write "data:" & rsService("test") &"<br>" %></P><P>&nbsp;</P><P><A HREF="u-default.asp?mode=logaf"><FONT COLOR="#FFFFFF">Log
af</FONT></A> </P></DIV></TD></TR></TABLE>
Avatar billede eagleeye Praktikant
17. april 2002 - 09:34 #13
får du en fejl eller ?
Avatar billede dtc Nybegynder
17. april 2002 - 09:39 #14
Eagleeye!

Jeg har 2 tabeller i min DB - users + service

Users indeholder:
ID
Username
Firmanavn
Adresse
Post
By
email

Service indeholder:

ID
Username
Test
Test1

Det skal gerne virke sådan at når brugeren klikker på et link så får han returneret de værdier der står ud for alle records med hans username i tabellen service.....

Giver det nogen mening?
Avatar billede dtc Nybegynder
17. april 2002 - 09:44 #15
Det skal være sådan at når kunden logger ind i systemet - for han nogle oplysninger om sig selv - data der står i tabllen USERS - det kan jeg godt få til at virke!

Men når han eks. klikker på LINK så skal han have de data - der står i tabllen SERVICE hvor hans username er!

Det skal bruges til at servicemodul - således at når jeg har været ude ved kunde 74337200 - så taster jeg mine besøgsdata ind i servicetabellen!
Kunden skal så kunne logge på systemet og se hvad jeg har skrevet ved mit besøg hos ham! Jeg kan godt have op til flere besøg hos samme kunde - så derfor skal kunden kunne have flere linier (records) i tabellen SERVICE.

Eks.

USERNAME          Dato      Besog      Status
74337200          17-04-2002 Aabenraa    Computer nede
74626262          04-04-2002 Haderslev  Modem defekt
74337200          02-04-2002 Aabenraa    Skærm i stykker
Avatar billede eagleeye Praktikant
17. april 2002 - 09:45 #16
Ja det gør det.. Prøv at lave udskriften sådan her:

do while not rsService.EOF
  response.write "Test: " & rsService("test")
  response.write "; Test1: " & rsService("test1") & "<br>"
  rsService.movenext
loop


Får du en tom side en fejl elle en side med
Test: ; Test1:    hvis du sætter min kode in somm udsskriver?
Avatar billede dtc Nybegynder
17. april 2002 - 09:50 #17
Jeg får en

HTTP 500 - Intern serverfejl
Internet Explorer

når jeg logger ind......
Avatar billede dtc Nybegynder
17. april 2002 - 09:50 #18
Avatar billede dtc Nybegynder
17. april 2002 - 09:51 #19
Koderne på min loginside ser sådan ud.....

<%
SET rs = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB.mdb")

If Request("mode") = "Check" then

Sql = "Select Count(*) as Found from users where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')"
Set Login = Rs.Execute(Sql)
if Login("Found") = 0 then
Session("login") = 0
error = "Du blev ikke godkendt af systemet"
else
Session("Login") = 1
Session("password-session") = Request("username")
Response.Redirect "u-default.asp"
end if
else
end if

%>
Avatar billede eagleeye Praktikant
17. april 2002 - 09:57 #20
har du etusername og password vi kan bruge som test?
Avatar billede eagleeye Praktikant
17. april 2002 - 09:57 #21
Prøv at slå friendly HTML errors fra i din browser.
Avatar billede dtc Nybegynder
17. april 2002 - 09:58 #22
Brugernavn: 74337200
Pass: dc
Avatar billede eagleeye Praktikant
17. april 2002 - 10:00 #23
hvis du slår Friendly HTML errors fra er fejlen sådan:

Microsoft VBScript compilation error '800a0401'
Expected end of statement
/test/kim/u-default.asp, line 8
strSQL = "SELECT* FROM service WHERE username = '" & rs("username") "';"
--------------------------------------------------------------------^



ret denne linie:
strSQL = "SELECT* FROM service WHERE username = '" & rs("username") "';"

TIL:
strSQL = "SELECT* FROM service WHERE username = '" & rs("username") & "';"
Avatar billede dtc Nybegynder
17. april 2002 - 10:02 #24
Så får jeg denne.....

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

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

/test/kim/u-default.asp, line 10
Avatar billede eagleeye Praktikant
17. april 2002 - 10:06 #25
erusername defineret som tekst eller tal ??
Avatar billede dtc Nybegynder
17. april 2002 - 10:07 #26
tekst!
Avatar billede eagleeye Praktikant
17. april 2002 - 10:08 #27
hvad står der i linie 10?
Avatar billede dtc Nybegynder
17. april 2002 - 10:09 #28
UPS...de var defineret som tal i service og tekst i users!
Har rettet det til tekst i service!
Avatar billede dtc Nybegynder
17. april 2002 - 10:12 #29
GENIALT nu ser det ud til at virke..........TAK TAK TAK TAK TAK

Hvordan kan jeg så lave at der kommer til at ligge som et link
Dvs. når han klikker på "LINK" så får han disse værdier!!!!!
Avatar billede eagleeye Praktikant
17. april 2002 - 10:19 #30
så den første side skal være en side med infor omkring en bruger + link til siden som viser data?
Avatar billede dtc Nybegynder
17. april 2002 - 10:22 #31
PRÆCIS......
Avatar billede eagleeye Praktikant
17. april 2002 - 10:29 #32
du kan lave den første side i stil med:

<%
SET conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB.mdb")

Sql = "Select * FROM users WHERE username = '" & session("password-session") & "'"
set rs = Conn.Execute(SQL)
%>


<html>
<TITLE></TITLE>
<BODY>
Velkommen <%=rs("username")%>:
<br>
Se besøgsdata <A HREF="DENFILFØR.asp">her
</body>
</html>
Avatar billede dtc Nybegynder
17. april 2002 - 10:41 #33
Selvfølgelig - TAK for for den hurtige hjælp!!!! Du får hermed point - som er FULDT fortjent.....TAK!!!!!
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