Avatar billede xaero1987 Nybegynder
29. april 2006 - 14:06 Der er 8 kommentarer og
1 løsning

Hent data i Database

Jeg skal have lavet et script som kan hente de 10 nyeste ting i min database.

Det eneste jeg har lige nu er:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<%@Language=VBScript%>
<!--#include file = "database.inc"-->

<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <meta name="generator" content="Adobe GoLive" />
        <title>Spørgsmål</title>
    </head>

    <body bgcolor="#5fb75f">
       
    <TABLE WIDTH = 100>
    <TR>
    <TD><b><font color="RED">Emne</font></b></TD>
    <TD><b><font color="RED">Forfatter</font></b></TD>
    <TD><B><FONT COLOR = "RED">Modtager</FONT></B></TD></TR>


    </body>

</html>

Kan ikke lige se hvordan man skal skrive scriptet.
Avatar billede trekkies Juniormester
29. april 2006 - 18:54 #1
Hvad står der i database.inc filen?
Avatar billede xaero1987 Nybegynder
29. april 2006 - 18:59 #2
<%
    'REWRITE THIS:  DON'T PUT THE DATABASE IN THE
    'SAME DIRECTORY AS THE ASP FILES.  THIS WAS JUST
    'DONE FOR DEMO PURPOSES, SO YOU CAN GET THE DEMO
    'UP AN RUNNING RIGHT AWAY.  YOU CAN
        'HARD CODE YOUR DATABASE PATH, RATHER THAN
    'RESOLVING IT DYNAMICCLY
    sFile = request.ServerVariables("PATH_TRANSLATED")
    sSplit = split(sFile, "\")
    for iCtr = 0 to uBound(sSplit) - 1
        sDir = sDir & sSplit(ictr) & "\"
    next
   
    sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDir & "forum.mdb"
   
set conn = Server.CreateObject("ADODB.Connection")
set cmd = Server.CreateObject("ADODB.Command")
set rs = Server.CreateObject("ADODB.Recordset")
'conn.mode = 3
conn.open sConnString
set cmd.activeconnection = conn
%>
Avatar billede eagleeye Praktikant
29. april 2006 - 21:48 #3
Du kan tilføje noget som som dette, du skal havde rette tabelnavn til dit tabelnavn og id skal være enten en dato kolonne eller autonummer kolonne i sql = linien:
  sql = "select top 10 * from tabelnavn order by id desc"

Samt rette alle de linier med rs("xxxx") så det passer med kolonnenavne i din tabel.



Så prøv sådan her:


    <TABLE WIDTH = 100>
    <TR>
    <TD><b><font color="RED">Emne</font></b></TD>
    <TD><b><font color="RED">Forfatter</font></b></TD>
    <TD><B><FONT COLOR = "RED">Modtager</FONT></B></TD></TR>
<%
  sql = "select top 10 * from tabelnavn order by id desc"
  Set rs = conn.Execute(SQL)
  do while not rs.EOF
    response.write "<TR>"
    response.write "<TD>" & rs("Emne") & "</TD>"
    response.write "<TD>" & rs("Forfatter") & "</TD>"
    response.write "<TD>" & rs("Modtager") & "</TD>"
    response.write "</TR>"
    rs.Movenext
  loop
%>
    </TABLE>
Avatar billede xaero1987 Nybegynder
29. april 2006 - 22:03 #4
Jeg har stadig en fejl. Kan ikke lige se hvad det står forkert i den første kode så nu virker set rs..... ikke mere. Koden ser sådan ud:

    <%
    strSQL = "select top 10 * from Sporgsmal when Offentlig = Ja order by Id Desc"

    Set rs = Conn.Execute(strSQL)
    Do
   
    response.write "<TR>"
    response.write "<TD><A HREF='stil-sporgsmal.asp?ID=" & rs("ID") & "'>"  & rs("Emne") & "</A></FONT></TD>"
    response.write "<TD>"  & rs("Navn") & "</A></FONT></TD>"
    response.write "<TD>"  & rs("Modtager") & "</A></FONT></TD>"
    response.write "</TR>"
   
    rs.MoveNext
    Loop While Not rs.EOF

    %>
Avatar billede eagleeye Praktikant
29. april 2006 - 22:08 #5
Hvilken fejl får du?

men du bør rette Do til:

Do While Not rs.EOF



og Loop While Not rs.EOF:

Loop



Så sikre du at den ikke melder fejl hvis recordsetet er tomt.
Avatar billede xaero1987 Nybegynder
29. april 2006 - 22:10 #6
fejlen ser sådan ud:
Fejltype:
(0x80004005)
Uspecificeret fejl
/sporgsmal/sporgsmal.asp, line 23

Tror der er en fejl et eller andet sted i denne linje:
strSQL = "select top 10 * from Sporgsmal when Offentlig = Ja order by Id Desc"
Avatar billede eagleeye Praktikant
29. april 2006 - 22:12 #7
arh du skal bruge Where i stedet for when i SQL sætningen:

strSQL = "select top 10 * from Sporgsmal when Offentlig = Ja order by Id Desc"

Sådan her:

strSQL = "select top 10 * from Sporgsmal where Offentlig = Ja order by Id Desc"
Avatar billede xaero1987 Nybegynder
29. april 2006 - 22:14 #8
Der kommer samme fejl.
Microsoft JET Database Engine (0x80040E10)
Der er ikke angivet nogen værdi for en eller flere krævede parametre.
/sporgsmal/sporgsmal.asp, line 23

Det er i denne linje:
Set rs = Conn.Execute(strSQL)
Avatar billede eagleeye Praktikant
29. april 2006 - 22:14 #9
Offentlig er det en teskt kolonne for så skal der ' omkring:

strSQL = "select top 10 * from Sporgsmal where Offentlig = 'Ja' order by Id Desc"
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