Avatar billede zetn Nybegynder
23. juli 2003 - 00:28 Der er 9 kommentarer og
1 løsning

Udtrækning af DB

Heysa, har lige et lille problem:

Jeg vil gerne have udtrukket nogle projekter til hver bruger, til dette har jeg lavet koden:

Først skal den have et ID fra "projekter" hvorefter den skal gå hen og finde det i "projekter1".

Når jeg kører koden virker den, men der kommer kun et udtræk selvom nogle brugere har 2 eller 3 projekter tilmeldt.

do
on error resume next

strSQL3 = "select * from projekter where userid='" & request.querystring("id") &"'"
set rs5 = conn.execute(strSQL3)

strSQL = "select * from projekter1 where id=" & rs5("projektid") &""
set rs4 = conn.execute(strSQL)

response.write rs4("firmanavn")

rs4.movenext

Loop while NOT rs4.eof


Kan I hjælpe?

med venlig hilsen
Jacob Wulff
Avatar billede thomas_yde Nybegynder
23. juli 2003 - 00:42 #1
Sådan som jeg normalt ville lave det ville jeg skrive:

set rs4 = conn.execute(strSQL)
while not rs4.EOF
  response.write rs4("firmanavn")
  rs4.movenext
Wend
Avatar billede eagleeye Praktikant
23. juli 2003 - 00:42 #2
Det går noget galt med dine recordset, eksvis bliver rs4 overskrevet hver gang inde i loopet. Umiddelbart ser det ud som om det vil hænge hvis der er flere proejter til en bruger.

Jeg kan ikke helt gennemskue din kode men det bud på hvordan den skal de ud kunne være sådan her.



strSQL3 = "select * from projekter where userid='" & request.querystring("id") &"'"
set rs5 = conn.execute(strSQL3)

do while NOT rs5.eof
 
  response.write "projektid " & rs5("projektid") & "<br>"

  strSQL = "select * from projekter1 where id=" & rs5("projektid") &""
  set rs4 = conn.execute(strSQL)

  do while NOT rs4.eof
    response.write rs4("firmanavn") & "<br>"
    rs4.movenext
  Loop

  rs5.Movenext
loop
Avatar billede thomas_yde Nybegynder
23. juli 2003 - 00:47 #3
jeg ville nok lave det tíl en IF istedet

strSQL3 = "select * from projekter where userid='" & request.querystring("id") &"'"

set rs5 = conn.execute(strSQL3)
If Not rs5.EOF then

  strSQL = "select * from projekter1 where id=" & rs5("projektid") &""
  set rs4 = conn.execute(strSQL)
 
  While not rs4.EOF
    response.write rs4("firmanavn")
    rs4.movenext
  Wend
End If
Avatar billede thomas_yde Nybegynder
23. juli 2003 - 00:48 #4
Da jeg antager at den kun skal hente projekter fra én bruger.
Avatar billede zetn Nybegynder
23. juli 2003 - 12:00 #5
eagleeye, jeg tror det duer det du har skrevet, men kan ikke lige helt få det sat ind.
Osse forkert med rs4 og rs5:


strSQL = "SELECT * FROM projekter WHERE userid = '" & session("login") & "'"
Set rj = Conn.Execute(strSQL)

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "select * from projekter1 where id = " & rj("id") & " order by " & sort & " " & sort1 & ""
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
rs.PageSize = antal
rs.AbsolutePage = intPage
intRecCount = rs.PageSize
intPageCount = rs.PageCount

%>
    <table border="1" style="border-collapse: collapse" bordercolor="#111111" width="100%">
      <tbody>
        <tr>
          <td bgcolor="#<% response.write "" & t1color & "" %>"><font size="+0"><b>&nbsp;<a href='admin.asp?mode=new'><IMG SRC="images/ny.gif" WIDTH="17" HEIGHT="11" BORDER=0     >&nbsp;</a>&nbsp;Projekter</b></font></td><td width="10%" bgcolor="#<% response.write "" & t3color & "" %>"  align="right"><font color=black><a href='admin.asp?mode=new'><IMG SRC="images/ny.gif" WIDTH="17" HEIGHT="11" BORDER=0 ALT="">&nbsp;</a></td>
        </tr>
        <tr>
          <td colspan=2 bgcolor="#<% response.write "" & t2color & "" %>" ><br><table border='0'>
        <td height="1" width="30%"><font><b>
if not rs.eof then

Do While Not rs.EOF And intRecCount > 0

navn = rs("firmanavn")
id = rs("id")
email = rs("demail")
dtlf = rs("dtlf")
kontakt = rs("kontaktperson")
status = rs("procent")   

If BGColor = True Then
    strBG = "#FFFFFF"
    BGColor = False
Else
    strBG = "#DBDBDB"
    BGColor = True
End If
%>
<tr bgcolor="<% response.write strBG %>">
    <td height="1" width="300"><font>&nbsp;<a href="admin.asp?mode=vprojekt&id=<% response.write id%>"><IMG SRC="images/info.gif" border="0"></a>&nbsp;<% response.write navn%></td>
    <td height="1" width="130"><font><% response.write kontakt%></td>
    <td height="1" width="120"><font><% response.write dtlf%></td>
    <td height="1" width="120"><font><% response.write "<a href='mailto:" & email & "'>" & email & "</a>"%></td>
    <% if status = "Afsluttet" then
    %>
    <td height="1" width="250"><font><table height="5" cellSpacing="0" cellPadding="0" width="100%" bgColor="#00e0">
      <tr>
        <td>&nbsp;</td>
        <td align="middle"><font size="8"><% Response.Write "" & status & "" %>&nbsp;</font></td>
      </tr>
    </table></td>
</tr>
<%
else
%>
    <td height="1" width="250"><font><table height="5" cellSpacing="0" cellPadding="0" width="<% Response.Write "" & status & "" %>%" bgColor="#00e0">
      <tr>
        <td>&nbsp;</td>
        <td align="middle"><font size="8"><% Response.Write "" & status & "" %>&nbsp;</font></td>
      </tr>
    </table></td>
</tr>
<%
end if
intRecCount = intRecCount - 1
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing
Response.Write "<font>&nbsp;&nbsp; "
For intNum = 1 To intPageCount
Response.Write "<a href=admin.asp?mode=projekter&page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write ""
If Clng(intPage) > 1 Then
Response.Write "<a href=admin.asp?mode=projekter&page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
Response.Write "<a href=admin.asp?mode=projekter&page=" & intPage + 1 & ">&gt;&gt;</a>"
Else
Response.Write "&gt;&gt;"
End If

else
Response.write "<font>Ingen projekter pt."
end if

Her får jeg nemlig bare "Ingen projekter pt", hvor skal de indsættes henne?
Avatar billede the_bma_man Nybegynder
23. juli 2003 - 12:01 #6
Jeg ville nok tro på EE's udgave, da han i første select henter fra tabeller projekter, og ikke brugere.
Så jeg går ud fra, at han skal finde oplysninger til _alle_ de projekter, en given bruger har.
Avatar billede zetn Nybegynder
23. juli 2003 - 14:00 #7
Ja, men hvor skal det sættes ind?
Avatar billede the_bma_man Nybegynder
23. juli 2003 - 14:24 #8
Fra den linie du har, der hedder do
til den, der hedder while ...

Det er statter du med EE's linier, incl do while linien og loop linien
Avatar billede zetn Nybegynder
23. juli 2003 - 17:55 #9
huh?
Avatar billede zetn Nybegynder
31. juli 2003 - 18:00 #10
Kan du ikke sætte det ind der hvor du mener?
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