Avatar billede jpj3 Nybegynder
29. august 2002 - 23:30 Der er 34 kommentarer og
1 løsning

Hvordan får jeg vist indhold fra DB

Jeg har fået denne kalender og jeg mangler lidt hjælp til at få vist indholdet fra DB på den rigtige dato.

*********
<%
dtmdate = request.querystring("dtmdate")

oversigt    = request.querystring("oversigt")

Function date2dkmonth(dato)

  ' Array med danske navne på måneder
  arrMaaned = ",jan,feb,mar,apr,maj,Juni,Juli,aug,sep,okt,nov,dec"
  arrMaaned = Split(arrMaaned,",")

  ' Datoen sammensættes
  date2dkmonth = arrMaaned(Month(dato)) & " " & Year(dato)

End Function

function ugenummer(dato)
        x = (DatePart("ww",dato,vbThursday))
        x=x-1
        ugenummer=x
        if ugenummer=0 then ugenummer=52
end function

Function date2dkdag(dato)

  ' Array med danske navne på dage
  arrDag = ",søndag,mandag,tirsdag,onsdag,torsdag,fredag,lørdag"
  arrDag = Split(arrDag,",")

  ' Datoen sammensættes
  date2dkdag= arrdag(weekday(dato))

End Function

if not isdate ("31-"&month(date)&"-"&year(date)) then slutdag = 30
if not isdate ("30-"&month(date)&"-"&year(date)) then slutdag = 29
if not isdate ("29-"&month(date)&"-"&year(date)) then slutdag = 28


dtmToday = Date()

If dtmDate = "" Then
    dtmDate = Date()
Else
    dtmDate = CDate(dtmDate)
End if

function ugenummer(dato)
        x = (DatePart("ww",dato,vbThursday))
        x=x-1
        ugenummer=x
        if ugenummer=0 then ugenummer=52
end function

intYear = Year(dtmDate)
strMonth = MonthName(Month(dtmDate))
intDayOfMonth = Day(dtmDate)
dtmFirstDate = DateAdd("d", (-intDayOfMonth)+1, dtmDate)
intFirstDay = Weekday(dtmFirstDate, vbMonday)
arrWeekdays = Array("Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn")
arrMaaned = Array("","januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december")
%>
    <table style="border-color:" bordercolor="#C9DFFA" align="center" width="<%= tablewidth %>" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td colspan="3" class="lilleTxt" align="center"><strong>Uge kalender</strong><br></td>
    </tr>
<%
dato        = (dtmdate) - (weekday(dtmdate)-1)

for w = 1 to 4

taeller = 0

monede = month(dato)

    for U = 1 to 7

    taeller = taeller + 1
   
    dato        = dateadd("d", 1, dato )
   
    If blnLast = TRUE THEN thisweek = "-" ELSE thisweek = ugenummer(dato+3)
   
    IF mindsteuge = "" then mindsteuge = "1"
   
    if thisweek < mindsteuge then
        mindsteuge = thisweek
    end if

    if taeller = 1 then
   
        if day(dato) > 25 then exmonth = true
    %>
        <tr>
            <td class="lilleTxt" colspan="1" bgcolor="000099"><font color="FFFFFF"><b>Uge <%= thisweek %></b></font></td>
            <td align="right" class="lilleTxt" bgcolor="#D8D8D8" ><font color="000099">
            <%   
            if exmonth = true then
            response.write (arrmaaned(month(dato))&" / ")
            response.write (arrmaaned(month(dato + 10)))
           
            else
            response.write (arrmaaned(month(dato)))            
            end if
            response.write " - "
            response.write (year(dato))
           
            exmonth = false
            %></font></td>
        </tr>
    <%
    end if
   
    firstday = Weekday(dato, vbMonday)
   
    startdag        = day(dato)
    startmonth         = month(dato)
    startyear        = year(dato)
   
    startdato    = cdate(startyear&"-"&startmonth&"-"&startdag)
   
    dagsdato    = startdato-(firstday-1)
   
    dagsnavn    = weekday(dato-1)
   
   
    if dato = date then color = "bgcolor=FF8000"
    %>   
        <tr >
            <td class="lilletxt" width="60" align="left" <%= color%>>&nbsp;<%= day(dato) %>&nbsp;&nbsp;<%= arrweekdays(dagsnavn-1) %></td>
            <td width="90%" class="lilleTxt">
            &nbsp;<%= subject %>
            </td>
        </tr>
    <%
        subject = ""
        color = ""
    next %>   
<% next %>   
    <tr>
        <td colspan="3" height="1" bgcolor="000099">


        </td>
    </tr>
    <tr>
        <td colspan="3">
            <table width="100%" cellpadding="0" cellspacing="0" border="0">
                <tr bgcolor="#D8D8D8">
                    <td class="lilleTxt" width="50%"><a class="linksort" href="?oversigt=week&dtmdate=<%= dato -56 %>&dept_id=<%=dept_id%>">Uge&nbsp;<%= mindsteuge -4 %> -  <%= mindsteuge -1 %></a></td>
                    <td class="lilleTxt" width="50%" align="right"><a class="linksort" href="?oversigt=week&dtmdate=<%= dato +1 %>&dept_id=<%=dept_id%>">Uge&nbsp;<%= mindsteuge +4 %> -  <%= mindsteuge +8 %>&nbsp;</a></td>
                </tr>
            </table>
        </td>
    </tr>
</table>
<% END SELECT %>
Avatar billede in2designs Nybegynder
29. august 2002 - 23:58 #1
hmm.. først ville jeg lige sige at <% END SELECT %> virker ikke ?
nå jeg prøver dit script uden DB så skriver den fejl "<% END SELECT %>" line blah..

så jeg slettede den og det virker fint..
men nu til Database..
Jeg har selv ikke helt lært hvordan man gør men kan da prøve sammen med dig.
Avatar billede in2designs Nybegynder
29. august 2002 - 23:59 #2
nu er mit problem bare at jeg ikke har lært VBSCRIPT i nu.. men JSCRIPT som man også kan bruge i asp.. men prøver mig bare frem.
Avatar billede in2designs Nybegynder
30. august 2002 - 00:02 #3
har du forstan på ASP ??
Avatar billede in2designs Nybegynder
30. august 2002 - 00:02 #4
nu hvor du skriver jeg har fået denne her script ?
Avatar billede in2designs Nybegynder
30. august 2002 - 00:05 #5
først skal du jo skrive

DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/database.mdb")
Conn.Open DSN

for at hente noget fra din database
Avatar billede bootie Nybegynder
30. august 2002 - 00:13 #6
Jeg tror ikke han har problemer med at komme i databasen, men problemer med at finde lige det SUBJECT der høre til lige præcis den dato...
Avatar billede bootie Nybegynder
30. august 2002 - 00:16 #7
Du skal her gøre brug af dine variabler..
Du har jo variabler til at huske hvilken dag, hvilket månede og hvilket år det er.
I din databasen har du et dato felt eller en dag, månede og år felt og du skal så i en eller anden rækkefølge have taget de tilhørende resultater ud at resultsettet.
Avatar billede bootie Nybegynder
30. august 2002 - 00:24 #8
I variablen "dato" ligger der følgende på en given dag = 9/22/2002
22. august 2002

Den dato skal du jo holde op mid din database eller det resultset du har trukket ud.
Hvis ud i din database har lavet datoen på samme form kan du jo lave en

query = "SELECT * FROM kalender WHERE dato = '"& dato &"'"
Set result =connection.Execute(query)
    %>   
        <tr >
            <td class="lilletxt" width="60" align="left" <%= color%>>&nbsp;<%= day(dato) %>&nbsp;&nbsp;<%= arrweekdays(dagsnavn-1) %></td>
            <td width="90%" class="lilleTxt">
            &nbsp;<%= rs("subject") %>
            </td>
        </tr>
    <%

Så vil det nok kunne køre.
Avatar billede bootie Nybegynder
30. august 2002 - 00:26 #9
<%= rs("subject") %>
Skal naturligvis være ;<%= result("subject") %>
subject er det feltet fra databasens navn
hedder det noget andet er det det du skal skrive
Avatar billede bootie Nybegynder
30. august 2002 - 00:28 #10
Hvis det ikke er nok skal jeg nok kommer med flere tips
Avatar billede bootie Nybegynder
30. august 2002 - 00:28 #11
UPS
Der skal jo også lige være et svar
Avatar billede jpj3 Nybegynder
30. august 2002 - 23:14 #12
Jeg får denne fejl.

Microsoft VBScript runtime error '800a01a8'
Object required: 'connection'

/2002/1/kalender.asp, line 250

Linie 250 siger:
Set result =connection.Execute(query)

min connection lyder således:
<%
set kalender = Server.CreateObject("ADODB.Recordset")
kalender.ActiveConnection = MM_Spiller_STRING
kalender.Source = "SELECT kalender.*  FROM kalender;  "
kalender.CursorType = 0
kalender.CursorLocation = 2
kalender.LockType = 3
kalender.Open()
kalender_numRows = 0
%>

Er det forkert sat sammen i "Set result =connection.Execute(query)"
Avatar billede bootie Nybegynder
31. august 2002 - 00:59 #13
Ja, så vidt jeg se du mangler at oprette dit connection object
Det gør du med:

Set connection = Server.CreateObject("ADODB.Connection")
connection.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; UID=Username; PWD=Password; DATABASE=Databasen;"

Hvis man bruger en MySQL database altså med den respektive ODBC installeret.

Hvilken database bruger du?
Avatar billede jpj3 Nybegynder
31. august 2002 - 01:00 #14
jeg kører access 2000
Avatar billede bootie Nybegynder
31. august 2002 - 01:00 #15
Ellers er linien rigtig nok. Hvis altså du har lavet din connection object.
Avatar billede jpj3 Nybegynder
31. august 2002 - 01:03 #16
Jeg bruger denne linie i en include fil.

<%

  ' *** MS Access, DSNless

  'OLEDB kald til Access 2000

MM_Spiller_STRING = "Data Source=d:\home\website\db\prof.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
%>
Avatar billede bootie Nybegynder
31. august 2002 - 01:04 #17
Ok.
Så ser din connection.Open linie lidt anderledes ud
Så skal den nok se sådan ud:
connection.Open = = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/sti til batabasen/database.mdb")

Jeg ved ikke helt om det vil virke da jeg bruger MsSQL database
Avatar billede bootie Nybegynder
31. august 2002 - 01:09 #18
Der skal så også kun være et = tegn efter connection.Open UPS
Avatar billede jpj3 Nybegynder
31. august 2002 - 01:20 #19
Det fandt jeg ud af
Du kan se resultatet her
http://www.hilleroed-hk.dk/2002/1/kalender.asp
Min connection ser således ud.
<!--#include file="../Include/Spiller.asp" -->
<%
set kalender = Server.CreateObject("ADODB.Recordset")
kalender.ActiveConnection = MM_Spiller_STRING
kalender.Source = "SELECT * FROM kalender"
kalender.CursorType = 0
kalender.CursorLocation = 2
kalender.LockType = 3
kalender.Open()
kalender_numRows = 0
%>
***********
Disse linier er lagt ind for at vise SQL kaldet.
<%
query = "SELECT * FROM kalender WHERE dato = '"&startdato&"'"
response.write query
'Set kalender =connection.Execute(query)

    %>
Avatar billede jpj3 Nybegynder
31. august 2002 - 01:21 #20
Hvis jeg piller ' af 'Set kalender =connection.Execute(query) kommer den med connction fejl
Avatar billede jpj3 Nybegynder
31. august 2002 - 01:24 #21
Du kan se her
http://www.hilleroed-hk.dk/2002/1/kalender1.asp
Linie 252 er denne:
Set kalender =connection.Execute(query)
Avatar billede bootie Nybegynder
31. august 2002 - 10:05 #22
Som jeg ser det er din kalender object blot et resultset
Altså der hvor du ligger resultatet fra database kaldet.
Jeg kan ikke rigtig hitte hovede eller hale i den måde du laver database kaldet på...

Jeg kan kun bede dig om at prøve at gøre det sådan her og rette de forskellige variabler til i connection linien aller øverst og rettet i query linien. Ellers kan jeg ikke hjælpe dig:
<%
Set connection = Server.CreateObject("ADODB.Connection")
connection.Open = = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/sti til batabasen/database.mdb")

dtmdate = request.querystring("dtmdate")

oversigt    = request.querystring("oversigt")

Function date2dkmonth(dato)

  ' Array med danske navne på måneder
  arrMaaned = ",jan,feb,mar,apr,maj,Juni,Juli,aug,sep,okt,nov,dec"
  arrMaaned = Split(arrMaaned,",")

  ' Datoen sammensættes
  date2dkmonth = arrMaaned(Month(dato)) & " " & Year(dato)

End Function

function ugenummer(dato)
        x = (DatePart("ww",dato,vbThursday))
        x=x-1
        ugenummer=x
        if ugenummer=0 then ugenummer=52
end function

Function date2dkdag(dato)

  ' Array med danske navne på dage
  arrDag = ",søndag,mandag,tirsdag,onsdag,torsdag,fredag,lørdag"
  arrDag = Split(arrDag,",")

  ' Datoen sammensættes
  date2dkdag= arrdag(weekday(dato))

End Function

if not isdate ("31-"&month(date)&"-"&year(date)) then slutdag = 30
if not isdate ("30-"&month(date)&"-"&year(date)) then slutdag = 29
if not isdate ("29-"&month(date)&"-"&year(date)) then slutdag = 28


dtmToday = Date()

If dtmDate = "" Then
    dtmDate = Date()
Else
    dtmDate = CDate(dtmDate)
End if

function ugenummer(dato)
        x = (DatePart("ww",dato,vbThursday))
        x=x-1
        ugenummer=x
        if ugenummer=0 then ugenummer=52
end function

intYear = Year(dtmDate)
strMonth = MonthName(Month(dtmDate))
intDayOfMonth = Day(dtmDate)
dtmFirstDate = DateAdd("d", (-intDayOfMonth)+1, dtmDate)
intFirstDay = Weekday(dtmFirstDate, vbMonday)
arrWeekdays = Array("Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn")
arrMaaned = Array("","januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december")
%>
    <table style="border-color:" bordercolor="#C9DFFA" align="center" width="<%= tablewidth %>" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td colspan="3" class="lilleTxt" align="center"><strong>Uge kalender</strong><br></td>
    </tr>
<%
dato        = (dtmdate) - (weekday(dtmdate)-1)

for w = 1 to 4

taeller = 0

monede = month(dato)

    for U = 1 to 7

    taeller = taeller + 1
   
    dato        = dateadd("d", 1, dato )
   
    If blnLast = TRUE THEN thisweek = "-" ELSE thisweek = ugenummer(dato+3)
   
    IF mindsteuge = "" then mindsteuge = "1"
   
    if thisweek < mindsteuge then
        mindsteuge = thisweek
    end if

    if taeller = 1 then
   
        if day(dato) > 25 then exmonth = true
    %>
        <tr>
            <td class="lilleTxt" colspan="1" bgcolor="000099"><font color="FFFFFF"><b>Uge <%= thisweek %></b></font></td>
            <td align="right" class="lilleTxt" bgcolor="#D8D8D8" ><font color="000099">
            <%   
            if exmonth = true then
            response.write (arrmaaned(month(dato))&" / ")
            response.write (arrmaaned(month(dato + 10)))
           
            else
            response.write (arrmaaned(month(dato)))           
            end if
            response.write " - "
            response.write (year(dato))
           
            exmonth = false
            %></font></td>
        </tr>
    <%
    end if
   
    firstday = Weekday(dato, vbMonday)
   
    startdag        = day(dato)
    startmonth        = month(dato)
    startyear        = year(dato)
   
    startdato    = cdate(startyear&"-"&startmonth&"-"&startdag)
   
    dagsdato    = startdato-(firstday-1)
   
    dagsnavn    = weekday(dato-1)
   
    query = "SELECT * FROM spiller WHERE dato = '"&dato&"'"
    Set result = connection.Execute(query)
   
    if dato = date then color = "bgcolor=FF8000"
    %>   
        <tr >
            <td class="lilletxt" width="60" align="left" <%= color%>>&nbsp;<%= day(dato) %>&nbsp;&nbsp;<%= arrweekdays(dagsnavn-1) %></td>
            <td width="90%" class="lilleTxt">
            &nbsp;<%=rs("kolonnens navn") %>
            </td>
        </tr>
    <%
        subject = ""
        color = ""
    next %>   
<% next %>   
    <tr>
        <td colspan="3" height="1" bgcolor="000099">


        </td>
    </tr>
    <tr>
        <td colspan="3">
            <table width="100%" cellpadding="0" cellspacing="0" border="0">
                <tr bgcolor="#D8D8D8">
                    <td class="lilleTxt" width="50%"><a class="linksort" href="?oversigt=week&dtmdate=<%= dato -56 %>&dept_id=<%=dept_id%>">Uge&nbsp;<%= mindsteuge -4 %> -  <%= mindsteuge -1 %></a></td>
                    <td class="lilleTxt" width="50%" align="right"><a class="linksort" href="?oversigt=week&dtmdate=<%= dato +1 %>&dept_id=<%=dept_id%>">Uge&nbsp;<%= mindsteuge +4 %> -  <%= mindsteuge +8 %>&nbsp;</a></td>
                </tr>
            </table>
        </td>
    </tr>
</table>
Avatar billede bootie Nybegynder
31. august 2002 - 10:17 #23
UPS
Og igen skal du lige ændre =rs("kolonnensnavn") til =result("kolonnens navn")
Avatar billede jpj3 Nybegynder
31. august 2002 - 12:11 #24
Jeg har rettet den  og nu kommer den med denne fejl.

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/2002/1/kalender2.asp, line 131

Linie 131 siger
  Set result = connection.Execute(query)
Avatar billede bootie Nybegynder
31. august 2002 - 12:15 #25
query = "SELECT * FROM spiller WHERE dato = '"&dato&"'"

Hvordan ser din database ud i feltet dato? Og hedder feltet dato?

De to skal jo helst være ens
Altså at variablen dato så jo sådan ud 9/22/2002
Sådan skal datoen også se ud i databasen ellers kan den ikke finde det.
Eller du formatere en variable så den ser ud som i databasen.
Avatar billede bootie Nybegynder
31. august 2002 - 12:16 #26
Hvordan ser din denne linie nu ud?
connection.Open = = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/sti til batabasen/database.mdb")
Avatar billede jpj3 Nybegynder
31. august 2002 - 12:21 #27
Dato feltet hed startdato er nu rettet til dato.
variablen er nu rettet til 9/22/2002

Connetion ser således ud
Jeg har pillet det ene = ud
connection.Open = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../../DB/profil.mdb") & ";"
Avatar billede jpj3 Nybegynder
31. august 2002 - 12:22 #28
Kommer med denne fejl

error '80020009'
Exception occurred.

/2002/1/kalender.asp, line 0
Avatar billede jpj3 Nybegynder
31. august 2002 - 12:30 #29
Skal datoen i DB være på denne led 9/22/2002

SELECT * FROM kalender WHERE dato = '26-08-2002'

På denne side http://www.hilleroed-hk.dk/2002/1/kalender1.asp
Skriver den 26-08-2002
Avatar billede bootie Nybegynder
31. august 2002 - 12:57 #30
Hvad skriver du når du vil trække result ud af resultsettet?
Avatar billede jpj3 Nybegynder
01. september 2002 - 20:57 #31
Jeg er ikke lige klar på hvad du mener.
Jeg har lagt hele siden i en zipfil på denne adr.
http://www.hilleroed-hk.dk/2002/1/kalender.zip
Avatar billede bootie Nybegynder
01. september 2002 - 22:32 #32
Yes.
Kigger lige på den
Har du evt ICQ installeret?
Det er lidt nemmere at koorospondere gennem ICQ then.
#23757731
Avatar billede bootie Nybegynder
01. september 2002 - 22:51 #33
Jeg har lavet scriptet om til at køre på min MySQL DB og der virker den fint
Tag en kigger på

http://home.supergenius.dk:8080/kalender.asp
Avatar billede jpj3 Nybegynder
01. september 2002 - 22:57 #34
yes
ICQ #168610342
Avatar billede bootie Nybegynder
01. september 2002 - 23:26 #35
sådan der
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