Avatar billede Slettet bruger
18. april 2002 - 11:34 Der er 62 kommentarer og
2 løsninger

Hvordan laver man det rigtige opslag


Jeg har følgende:

Database:  kursus.mdb

Tabel:      kursus og ansvar (er flettet sammen fra to baser)

I kursus er der en post der hedder  Kkategori som skal findes i hele basen. Alle poster der har samme Kkategori skal derefter listes efter hinanden. Derunder næste Kkategori med tilhørende visning. Og så videre intil der ikke er flere i basen. Helst med 10 visninger pr. side, men mulighed for at se de næste 10. Eventuelt kunne alle Kkategori'er listes så man kan klikke på en Kkategori og så se alle kurser der hører dertil. Det ville nok være det bedste.

Når man har fundet og får vist listen skal man f. eks. kunne klikke på en af de viste så man kan se yderligere oplysninger. Når ydeligere oplysninger vises er der i kursus en post der hedder ANSVARLIG som er navnet på den der står for et kursus. I ansvar står samme navn i NAVN og også emailen på vedkommende i posten EMAIL som gerne skulle flettes sammen så der vises et MAILTO: link til vedkommende.

Det skal bruges til at vise indholdet som beskrevet ovenfor på en webside.

Er her en der kunne tænke sig at komme med eksempler, og hvormage point skal det koste ?

Ole.

Avatar billede ras2000 Nybegynder
18. april 2002 - 11:42 #1
tja det første er vel nemt nok.
SELECT * FROM 'kursus og ansvar' ORDER BY Kkategori;
Avatar billede Slettet bruger
18. april 2002 - 11:59 #2
SELECT * FROM 'kursus og ansvar' ORDER BY Kkategori;

giver

Microsoft VBScript compilation (0x800A03FD)
Expected 'Case'
Avatar billede ras2000 Nybegynder
18. april 2002 - 12:05 #3
Ok, du har slet ikke åbnet din database fra din side? Prøv det her:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/kursus.mdb")
set rst = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM 'kursus og ansvar' ORDER BY Kkategori"
rst.Open sql, Conn, 3, 3

Det forudsætter at din database ligger i en mappe der hedder databaser, på samme niveau som den mappe siden ligger i.
Avatar billede Slettet bruger
18. april 2002 - 12:09 #4
Jeg havde lavet følgende test:

<%
' Åben Connection til databasen
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("kursus.mdb") & ";"

set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 2

SELECT * FROM 'kursus og ansvar' ORDER BY Kkategori

Do While (NOT rs.EOF)

Response.Write rs("KKATEGORI")

    rs.MoveNext
Loop

' Luk recordset og connection
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>
Avatar billede Slettet bruger
18. april 2002 - 12:20 #5
Nu ser koden sådan ud:
<%
' Åben Connection til databasen
set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("kursus.mdb") & ";"
set rst = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM 'kursus og ansvar' ORDER BY Kkategori"
rst.Open sql, Conn, 3, 3
Do While (NOT rst.EOF)
Response.Write rst("KKATEGORI")
rst.MoveNext
Loop
' Luk recordset og connection
rst.Close
Set rst = Nothing
conn.Close
Set conn = Nothing
%>

og jeg får fejl:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in query. Incomplete query clause.

i denne:
rst.Open sql, Conn, 3, 3

Nogen idér ?
Avatar billede ras2000 Nybegynder
18. april 2002 - 12:32 #6
Hedder din tabel "kursus og ansvar" ?
Avatar billede eagleeye Praktikant
18. april 2002 - 12:32 #7
hedder din tabel: kursus og ansvar?? så udskirft '' med []:

sql = "SELECT * FROM [kursus og ansvar] ORDER BY Kkategori;"
Avatar billede Slettet bruger
18. april 2002 - 12:32 #8
Det er 2 tabeller.
Avatar billede ras2000 Nybegynder
18. april 2002 - 12:36 #9
Det kunne du jo bare have sagt. Så skal din sql sætning se således ud.
sql = "SELECT * FROM kursus ORDER BY Kkategori;" Så får du kun den ene tabel med, kursus. Hvis du vil koble de to tabeller sammen, kræver det at de bliver koblet sammen via et felt de deler. Det er lidt bøvlet at fortælle, uden at vide hvordan dine tabeller ser ud, og hvordan du havdde tænkt dig at slutresultatet skulle se ud.
Avatar billede eagleeye Praktikant
18. april 2002 - 12:36 #10
arh ok.. hvordan er de så linket sammen altså relationen mellem dem?

Prøv lige med det her:
sql = "SELECT * FROM kursus ORDER BY Kkategori;"
Avatar billede Slettet bruger
18. april 2002 - 12:42 #11
ras2000 >>  jeg troede du havde læst begyndelsen :-)

eagleeye >> nu får jeg udskrevet Kkategori en masse gange under hinanden, så nu er der da adgang til basen.
Avatar billede Slettet bruger
18. april 2002 - 12:43 #12
Relationen er sat til ansvar over til NAVN som også indeholder EMAIL.
Avatar billede ras2000 Nybegynder
18. april 2002 - 12:46 #13
Tabel:      kursus og ansvar (er flettet sammen fra to baser) forstår jeg som en tabel, der er flettet sammen fra to databaser. Ellers skulle der vel have stået tabelLER SKAL flettes sammen til en tabel.
Hvad er i øvrigt forskellen på det eagleeye skrev som sql, og det jeg skrev?
Avatar billede Slettet bruger
18. april 2002 - 12:50 #14
Jeg har flettet dem sammen i Access. Det ser ud til at den linie jeg skulle bruge er ens ? Men eagleeye spurgte om relationerne. Ellers ved jeg ikke hvad du mener med det.

I første omgang ville jeg gerne have det til at virke som jeg skrev  første indlæg.
Avatar billede ras2000 Nybegynder
18. april 2002 - 12:52 #15
Den næste sql du skal lave skal hente information ud fra ansvar. Du laver et link til en ny side ala
<a href="ansvarlig.asp?navn=<%=rs("ansvarlig")%>"><%=rs("ansvarlig")%></a>
på den anden side, som i dette tilfælde hedder ansvarlig, skal din sql sætning se således ud:
sql = "SELECT * FROM ansvar WHERE navn = " & request.querystring("navn")
Hvis du også skal bruge oplysninger fra tabellen kursus, er du nok nød til at hente et id med.
Avatar billede ras2000 Nybegynder
18. april 2002 - 12:54 #16
Det var bare denne linie:
eagleeye >> nu får jeg udskrevet Kkategori en masse gange under hinanden, så nu er der da adgang til basen
Da vi begge skrev den samme sql sætning, undrede det mig at du kun henvendte dig til eagleeye.
Avatar billede Slettet bruger
18. april 2002 - 13:00 #17
Det var nok fordi jeg klippede hans linie over :-) Det var skam ikke for at fornærme nogen. Jeg er lidt forvirret over dette her. Som du skriver det nu, tyder det på at der skal være to databaser. Jeg har alt hvad jeg skal bruge i KURSUS, men samme navn står i tabellen ANSVAR og i den er der en post med EMAIL og den skal bruges til at lave navnet fra KURSUS til en mailto: link. Det virker meget uoverskueligt, derfor skrev jeg som jeg gjorde i starten.
Avatar billede Slettet bruger
18. april 2002 - 13:01 #18
Der er jo også mange linier der er det samme i Kkategori og de skal jo kun skrives 1 gang hver.
Avatar billede ras2000 Nybegynder
18. april 2002 - 13:06 #19
Jeg er slet ikke med på hvad det er du vil frem til.
Som jeg har forstået det, vil du have en liste  over kurser opdelt efter kategori. Når man så klikker på et kursus, kommer der nogle ekstra informationer frem, bla andet om den ansvarlige. Er det ikke sådan den skal laves?
Avatar billede eagleeye Praktikant
18. april 2002 - 13:07 #20
Den list du efterlyser hvad skal den indeholde??

Jeg tror jeg  har misforstået spørgsmålet lidt. Kan evt prøv at skrive det på en anden måde?

kursus:
kolonne Kkaterori
kolonne ?? list andre, kun relavandte

ansvar:
kolonne navn
kolonne email
kolonne ?? list andre, kun relavandte
Avatar billede Slettet bruger
18. april 2002 - 13:09 #21
Det smarteste er at man laver en liste over kategori. Man kal så kunne klikke på en kategori og alle kurser under den kategori skal vises. Når man så klikker på et kursus kommer alle relevante kurser frem og blandt de oplysninger står så navnet på den der har ansvaret for det pågældende kursus. Det navn skal så laves til en email link så man kan klikke på navnet og postkassen åbner og man kan skrive en mail til vedkommende.
Avatar billede eagleeye Praktikant
18. april 2002 - 13:11 #22
hvad med:

sql = "SELECT DISTINCT Kkategori FROM kursus ORDER BY Kkategori;"

Så får du en liste hvor hvert Kkategori kun skulle være en gang.
Avatar billede Slettet bruger
18. april 2002 - 13:12 #23
Hvis I ser på www.acnord.dk og vælger kurser så tror jeg det hjælper på at se hvad jeg vil :-)
Det slog mig lige at de jo er der, men det er sider der laves hver gang og en database til det er jo meget smartere.
Avatar billede Slettet bruger
18. april 2002 - 13:15 #24
De kommer stadig under hinanden en masse gange.
Avatar billede eagleeye Praktikant
18. april 2002 - 13:15 #25
Denne skal du bruge til at vælge alle kursus'er inden for en Kkategori:

sql = "SELECT * FROM kursus WHERE Kkategori='" & Request.querystring("kkategori") & "';"
Avatar billede eagleeye Praktikant
18. april 2002 - 13:15 #26
underligt hvad med...

sql = "SELECT DISTINCTROW Kkategori FROM kursus ORDER BY Kkategori;"
Avatar billede eagleeye Praktikant
18. april 2002 - 13:17 #27
næ det skal squ være:
sql = "SELECT DISTINCT Kkategori FROM kursus;"
prøv lige uden order.
Avatar billede Slettet bruger
18. april 2002 - 13:19 #28
Jeg får nu denne:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/test/Default.asp, line 18

Linie 18 er:
Response.Write rst("navn") & "<BR>"

og det er ikke kursus tabellen hedder med kurser :-)
Avatar billede eagleeye Praktikant
18. april 2002 - 13:20 #29
sql = "SELECT DISTINCT Kkategori, * FROM kurser;"
Avatar billede ras2000 Nybegynder
18. april 2002 - 13:21 #30
Er det det samme du vil lave som asp sider? Det er meget nemt. Du har dine to tabeller kursus og ansvarlig. Du bruger den sql sætning vi fandt frem til før. Du laver et link ligesom det jeg skrev, bare med kurset i stedet for. Jeg går ud fra at det tal der står ved kurset, hedder id i den tabel.
<a href="info.asp?id=<%=rs("id")%>"><%=rs("navn")%></a>
Så skullle du få navnet af kurset, som link til en side der hedder info.asp.
Siden info.asp er identisk med den anden side, i starten, men din sql-sætning er anderledes.
sql = "SELECT kursus.id, kursus.dato, kursus.tidspunkt, kursus.pris, kursus.tilmeldingsfrist, ansvar.email FROM kursus INNER JOIN ansvar ON kursus.ansvarlig = ansvar.navn WHERE kursus.id = " &request.querystring("id")
Avatar billede ras2000 Nybegynder
18. april 2002 - 13:24 #31
Prøv at sende databasen til rasmus.bak.jepsen@teknologisk.dk, så skal jeg kigge på det for dig.
Avatar billede Slettet bruger
18. april 2002 - 13:27 #32
eagleeye >> Nu viser den ikke en pind

ras2000 >> Den skal der vist tygges meget kraftigt på. Det ser mig noget kryptisk ud :-)
Avatar billede ras2000 Nybegynder
18. april 2002 - 13:29 #33
Det er derfor jeg gerne ville have at du sendte det til mig, så er det lidt nemmere at vise hvad jeg mener.
Avatar billede ras2000 Nybegynder
18. april 2002 - 13:37 #34
Denne kode giver dig dine overskrifter:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/kursus.mdb")
set rst = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM kursus ORDER BY Kkategori"
rst.Open sql, Conn, 3, 3
str = ""
Do while not rst.EOF
    if rst("kkategori") <> str then
        response.write "<b>" & rst("kkategori") & "</b><br>"
    end if
    response.write "&nbsp;&nbsp;" & rst("navn") & "<br>"
    str = rst("kkategori")
    rst.movenext
loop
%>
Avatar billede ras2000 Nybegynder
18. april 2002 - 13:39 #35
Og denne laver links til en side der hedder info.asp
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/kursus.mdb")
set rst = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM kursus ORDER BY Kkategori"
rst.Open sql, Conn, 3, 3
str = ""
Do while not rst.EOF
    if rst("kkategori") <> str then
        response.write "<b>" & rst("kkategori") & "</b><br>"
    end if
    response.write "&nbsp;&nbsp;<a href='info.asp?id=" & rst("id") & "'>" & rst("navn") & "</a><br>"
    str = rst("kkategori")
    rst.movenext
loop
%>
Avatar billede Slettet bruger
18. april 2002 - 13:48 #36
Nu har jeg ændret den lange linie til:
sql = "SELECT kurser.kursusnr, kurser.navn, kurser.startdato, kurser.starttid, kurser.pris, kurser.sidste_tlm, ansvar.email FROM kurser INNER JOIN ansvar ON kurser.ansvarlig = ansvar.navn WHERE kurser.kursusnr = " &request.querystring("kursusnr")

er det helt tosset ?

Men nu vil den ikke skrive noget ud fra basen.
Avatar billede Slettet bruger
18. april 2002 - 13:52 #37
Nu får jeg denne fejl

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'kurser.kursusnr ='.
/test/Default.asp, line 16

som er:
rst.Open sql, Conn, 3, 3
Avatar billede ras2000 Nybegynder
18. april 2002 - 13:52 #38
Og din info.asp side kunne se sådan her ud:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/kursus.mdb")
set rst = Server.CreateObject("ADODB.Recordset")
sql = "SELECT kursus.id, kursus.dato, kursus.tidspunkt, kursus.pris, kursus.tilmeldingsfrist, ansvar.email FROM kursus INNER JOIN ansvar ON kursus.ansvarlig = ansvar.navn WHERE kursus.id = " &request.querystring("id")
rst.Open sql, Conn, 3, 3
for each item in rst.fields
    response.write item
next
%>
Der regner jeg så med at der er felter i din kursus tabel der hedder tilmeldingsfrist, dato, pris, osv. svarende til de informationer der er i www.acnord.dk.
Avatar billede ras2000 Nybegynder
18. april 2002 - 13:55 #39
OK, der har vil lige krydset. Du skal ændre
<a href='info.asp?id=" & rst("id")
til
<a href='info.asp?kursusnr=" & rst("id")
Avatar billede ras2000 Nybegynder
18. april 2002 - 13:58 #40
hvis du laver et link <a href="enside.asp?id=noget"> så hedder det efter ? querystring. Hvis du laver en request.querystring, får du alt hvad der står efter ?. Hvis du skriver requeste.querystring("id") så får du "noget" i dette tilfælde, fordi der står ?id=noget. Hvis du skriver request.querystring("envariabelderikkeeksisterer") så kommer der ingenting ud af det. Håber det forklarede det lidt.
Avatar billede ras2000 Nybegynder
18. april 2002 - 14:00 #41
Der skulle selvf ha stået
<a href='info.asp?kursusnr=" & rst("kursusnr")
og ikke
<a href='info.asp?kursusnr=" & rst("id")
Avatar billede Slettet bruger
18. april 2002 - 14:05 #42
Sådan her skal denne linie se ud

sql = "SELECT DISTINCT Kkategori FROM kurser;"

så virker den og skriver kategorien ud 1 gang.
Avatar billede Slettet bruger
18. april 2002 - 14:07 #43
Det er den f... tabel jeg kom til at skrive forkert i starten. Det er KURSER, ØV men nu virke den da.
Avatar billede Slettet bruger
18. april 2002 - 14:11 #44
Jeg havde overset du havde skrevet din mail. Den er sendt nu.
Avatar billede ras2000 Nybegynder
18. april 2002 - 14:11 #45
svar. Jeg ser lige at jeg udelukkende har kommenteret.
Avatar billede ras2000 Nybegynder
18. april 2002 - 14:26 #46
Hvad hedder tabellen ansvar rigtigt? Jeg kan ikke åbne databasen i access, jeg kører med 97
Avatar billede Slettet bruger
18. april 2002 - 14:31 #47
Ok det er Access 2000 den er lavet i.

Jeg har sendt dig en ny i 97 version.
Avatar billede ras2000 Nybegynder
18. april 2002 - 14:39 #48
Ja, det blev jeg ikke meget klogere af. Du har koblet to databaser sammen, og kun sendte den ene. Flyt hele tabellen "ansvar" over i din database, ellers kan du ikke lave opslag i den.
Avatar billede ras2000 Nybegynder
18. april 2002 - 15:14 #49
Jeg smutter nu, men du kan jo poste videre, så kigger jeg ind i morgen.
Avatar billede Slettet bruger
18. april 2002 - 15:15 #50
Ok.
Avatar billede Slettet bruger
19. april 2002 - 09:09 #51
Nu er jeg kommet hertil:

http://195.192.9.228/test/

men der mangler jo en del. Det er dæleme noget kryptisk noget :-)
Avatar billede ras2000 Nybegynder
19. april 2002 - 11:06 #52
Jeg poster lige løsningen her også.
default.asp:
<html>
<head>
<title>Se kursuser</title>
</head>
<body BGCOLOR="#C0C0C0" COLOR="#000080">
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/kursus.mdb")
set rst = Server.CreateObject("ADODB.Recordset")
sql = "SELECT DISTINCT Kkategori FROM kurser;"
rst.Open sql, Conn, 3, 3
str = ""
%>
<BR><center>
  <B><font color="#000080">Klik på kategorien for at se kurserne.</font></B><BR>
  <BR>
  <table width="50%" border="5" cellspacing="2" cellpadding="4" name="Kategori">
    <% do while not rst.eof
    if str <> rst("kkategori") then
%>
    <td valign="middle" align="center"><B><a href="kategorier.asp?kat=<%=rst("Kkategori")%>"><%=rst("Kkategori")%></a></B></td>
<%
    end if
    str = rst("kkategori")
%>
</tr>
<%
    rst.movenext
loop
%>
</table></center>

</body>

</html>
kategorier.asp:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Alle vores dejlige kurser omhandlende <%=request.querystring("kat")%></title>
</head>

<body BGCOLOR="#C0C0C0" COLOR="#000080">
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/kursus.mdb")
set rst = Server.CreateObject("ADODB.Recordset")
sql = "SELECT kursusnr, kkategori, navn FROM kurser WHERE kkategori = '" & Request.Querystring("kat") & "';"
rst.Open sql, Conn, 3, 3
%>
<table width="50%" border="5" cellspacing="2" cellpadding="4" name="kurser">
    <tr>
        <td><%=Request.Querystring("kat")%></td>
    </tr>
<%do while not rst.eof%>
    <tr>
        <td><a href="info.asp?nr=<%=rst("kursusnr")%>&kat=<%=request.querystring("kat")%>"><%=rst("kursusnr")%>&nbsp;<%=rst("navn")%></a></td>
    </tr>
<%
    rst.movenext
loop
%>
</table>
</body>

</html>
info.asp
<html>

<head>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/kursus.mdb")
set rst = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM ansvar INNER JOIN kurser ON kurser.ansvarlig = ansvar.navn WHERE kurser.kursusnr = '" & Request.Querystring("nr") & "'"
rst.Open sql, Conn, 3, 3
%>
<title><%=rst("navn")%></title>
</head>

<body BGCOLOR="#C0C0C0" COLOR="#000080">
<table width="50%" border="5" cellspacing="2" cellpadding="4" name="kurser">
    <tr>
        <td><b>Kursus:</b></td>
        <td><%=rst("kursusnr")%>&nbsp;<%=rst("navn")%></td>
    </tr>
    <tr>
        <td>dato:</td>
        <td><%=rst("startdato")%></td>
    </tr>
    <tr>
        <td>tidspunkt:</td>
        <td><%=rst("starttid")%></td>
    </tr>
    <tr>
        <td>målgruppe:</td>
        <td><%=rst("maalgruppe")%></td>
    </tr>
    <tr>
        <td>pris:</td>
        <td><%=rst("pris")%></td>
    </tr>
    <tr>
        <td>tilmeldingsfrist:</td>
        <td><%=rst("sidste_tlm")%></td>
    </tr>
    <tr>
        <td>mødested:</td>
        <td><%=rst("moedested")%></td>
    </tr>
    <tr>
        <td>instruktør:</td>
        <td><%=rst("instruktor")%></td>
    </tr>
    <tr>
        <td>kursusansvarlig:</td>
        <td><a href="mailto:<%=rst("email")%>"><%=rst("ansvarlig")%></a></td>
    </tr>
</table>
<br>
<a href="default.asp">Tilbage til hovedlisten</a><br>
<a href="kategorier.asp?kat=<%=request.querystring("kat")%>">Tilbage til kurser om <%=rst("kkategori")%></a>
</body>
Du skal igen lige ændre stien til databasen, så det passer med din sti.
Forklaring:
Den første side, default.asp, finder alle kategorierne i din tabel. Det er du vel med på. Hver gang den skriver en kategori, så laver den også et link til en side der hedder kategorier.asp, og sender en variabel med, kat = "en kategori". Hvis du kigger på siden i din browser, og højreklikker, vælger vis kode, så kan du se at linkene ser sådan her ud:
<a href="kategorier.asp?kat=Begynder-/specialundervisning">Begynder-/specialundervisning</a>
Når du klikker på en af dem, åbner du siden kategorier.asp. Det er der vel ikke noget sært i. Du henter så variablen kat med kaldet request.querystring("kat"). Den bruger du i din sql sætning ...WHERE kkategori = " & request.querystring("kat")
Så har du et recordset med alle de kurser i den pågældende kategori. Dem lister på siden, og igen laver du et link, denne gang sender du kursusnummeret med til siden info.asp. Jeg har så valgt at sende den anden variabel kat med. Den skal også bruges i info.asp.
Den sidste side, kalder du al informationen fra det specifikke kursus frem, og henter information om den ansvarlige i tabellen ansvar. Det gør du med sql sætningen:
SELECT * FROM ansvar INNER JOIN kurser ON kurser.ansvarlig = ansvar.navn WHERE kurser.kursusnr = '" & Request.Querystring("nr") & "'"
Så skriver du al den information ud på siden, det er der vel heller ingen ben i.
Til sidst giver du så brugeren mulighed for at gå tilbage til hovedsiden, eller tilbage til den kategori han var i før. Jeg valgte en lidt omstændelig måde at gøre det på, for at være lidt pedagogisk. Det jeg gør er at brge den variabel jeg sendte videre, kat, og laver samme link, som i default.asp, altså <a href="kategorier.asp?kat=<%=request.querystring("kat")%>">.
Det svarer jo bare til at trykke tilbage knappen i browseren 1 eller 2 gange, så jeg kunne have skrevet følgende:
<a href="#" onclick="history.go(-1)">tilbage</a>
<a href="#" onclick="history.go(-2)">2 gange tilbage</a>
Men så er vi ovre i javascript.
Avatar billede ras2000 Nybegynder
19. april 2002 - 11:16 #53
Hvis du vil lære lidt mere om hvad man kan med asp, skulle du prøve at tage det lidt videre, lave en søge mekanisme, finde alle kurser med en bestemt instruktør, finde alle kurser i et bestemt sted, osv. Det er jo hele styrken i at lave det i en database. Hvis du vil have lidt inspiration, har jeg lavet en halvfærdig site, http://www.mucdesign.dk/detaljer/index.asp.
Avatar billede Slettet bruger
19. april 2002 - 11:20 #54
Du er simpelthen dagens mand i skysovs ;-) Det er jo lige det jeg efterlyste. Det er helt utroligt det kan lade sig gøre.

TUSIND TAK.

Hvad med point. Du kan jo næsten selv bestemme ;-)
Avatar billede Slettet bruger
19. april 2002 - 11:22 #55
Under Idræt er 2374 åbenbart slettet og jeg får en fejl. Kan man tage højde for sådan noget i dit system ?
Avatar billede ras2000 Nybegynder
19. april 2002 - 11:30 #56
100 point ville være perfekt, men hvis du ikke har så mange er det ikke det væsentlige. Jeg har ingen akut mangel.
Mht fejl, er det som regel det mest bøvlede at tage højde for. I den database jeg har, er der ingen problemer med 2374, den står som den skal. Hvad er det fejlen er? Hvis hele posten er slettet, burde der ikke komme en fejl, den burde bare ikke komme op på skærmen. Er det nummeret der er slettet? Hvilken en af siderne er det der giver problemer?
Avatar billede Slettet bruger
19. april 2002 - 11:34 #57
ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/test/info.asp

er fejlen når jeg trykker på den. Det er måske databasen der er kludder i, men det skulle jo være den samme som du bruger. Først starter den med kategorier. Så trykker jeg på idræt og derefter på 2374 og så kom den her. Prøv evt. selv på http://195.192.9.228/test/ der ligger det nu.

Du får de 100 og endnu engang tak.
Avatar billede Slettet bruger
19. april 2002 - 11:37 #58
eagleeye for de 20 for at hjælpe med select destinct

og ras200 for at lave stort set det hele. Tak til begge.
Avatar billede ras2000 Nybegynder
19. april 2002 - 11:43 #59
Jeg har fundet fejlen, det er fordi der ikke er angivet en ansvarlig for kurset. Så kan den ikke lave koblingen med tabellen ansvar, og så får du et tomt recordset. Du kan vælge at sætte en ansvarlig i databasen, eller lave denne her lappeløsning:
<html>

<head>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/kursus.mdb")
set rst = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM ansvar INNER JOIN kurser ON kurser.ansvarlig = ansvar.navn WHERE kurser.kursusnr = '" & Request.Querystring("nr") & "'"
rst.Open sql, Conn, 3, 3
a = rst.recordcount
if a > 0 then
%>
<title><%=rst("navn")%></title>
</head>

<body BGCOLOR="#C0C0C0" COLOR="#000080">
<table width="50%" border="5" cellspacing="2" cellpadding="4" name="kurser">
    <tr>
        <td><b>Kursus:</b></td>
        <td><%=rst("kursusnr")%>&nbsp;<%=rst("navn")%></td>
    </tr>
    <tr>
        <td>dato:</td>
        <td><%=rst("startdato")%></td>
    </tr>
    <tr>
        <td>tidspunkt:</td>
        <td><%=rst("starttid")%></td>
    </tr>
    <tr>
        <td>målgruppe:</td>
        <td><%=rst("maalgruppe")%></td>
    </tr>
    <tr>
        <td>pris:</td>
        <td><%=rst("pris")%></td>
    </tr>
    <tr>
        <td>tilmeldingsfrist:</td>
        <td><%=rst("sidste_tlm")%></td>
    </tr>
    <tr>
        <td>mødested:</td>
        <td><%=rst("moedested")%></td>
    </tr>
    <tr>
        <td>instruktør:</td>
        <td><%=rst("instruktor")%></td>
    </tr>
    <tr>
        <td>kursusansvarlig:</td>
        <td><a href="mailto:<%=rst("email")%>"><%=rst("ansvarlig")%></a></td>
    </tr>
</table>
<br>
<a href="default.asp">Tilbage til hovedlisten</a><br>
<a href="kategorier.asp?kat=<%=request.querystring("kat")%>">Tilbage til kurser om <%=rst("kkategori")%></a>
<%
else
    sql = "SELECT * FROM kurser WHERE kurser.kursusnr = '" & Request.Querystring("nr") & "'"
    rst.Open sql, Conn, 3, 3
%>
<table width="50%" border="5" cellspacing="2" cellpadding="4" name="kurser">
    <tr>
        <td><b>Kursus:</b></td>
        <td><%=rst("kursusnr")%>&nbsp;<%=rst("navn")%></td>
    </tr>
    <tr>
        <td>dato:</td>
        <td><%=rst("startdato")%></td>
    </tr>
    <tr>
        <td>tidspunkt:</td>
        <td><%=rst("starttid")%></td>
    </tr>
    <tr>
        <td>målgruppe:</td>
        <td><%=rst("maalgruppe")%></td>
    </tr>
    <tr>
        <td>pris:</td>
        <td><%=rst("pris")%></td>
    </tr>
    <tr>
        <td>tilmeldingsfrist:</td>
        <td><%=rst("sidste_tlm")%></td>
    </tr>
    <tr>
        <td>mødested:</td>
        <td><%=rst("moedested")%></td>
    </tr>
    <tr>
        <td>instruktør:</td>
        <td><%=rst("instruktor")%></td>
    </tr>
    <tr>
        <td>kursusansvarlig:</td>
        <td>Ingen information</a></td>
    </tr>
</table>
<%end if%>
</body>

Her tælles antallet af poster i rst, og hvis det ikke er større en nul (det skulle gerne være 1) skriver den informationen ud, uden koblingen til ansvar. Men det er stort set umuligt at tage højde for alle fejl der kan opstå, jeg vil foreslå at du satser på at finde fejlen i databasen, og rette den der, i stedet for at prøve at tage højde for fejlene på dine sider.
Avatar billede ras2000 Nybegynder
19. april 2002 - 11:49 #60
Du vil også få problemer med 2376, den har heller ingen ansvarlig.
Avatar billede Slettet bruger
19. april 2002 - 11:49 #61
Det er ok. Det vil jeg se på her. Så må pigerne jo have besked på at der må ikke være tomme felter lige der :-)

Tusind Tak. Nu har jeg noget at rode videre med, det er dejligt.

Og rigtig god weekend.
Avatar billede ras2000 Nybegynder
19. april 2002 - 11:55 #62
Selv tak, og god weekend. Sid nu ikke foran computeren hele tiden, der er også en verden udenfor!
Og du skulle virkelg tænke på at folk skal kunne vælge en geografisk location, før de leder efter kurset, og at man kan finde alle kurserne en bestemt person holder.
Det ville være temmelig nemt.
Avatar billede Slettet bruger
19. april 2002 - 11:58 #63
Det må være weekendens opgave :-) Det bliver det nu nok ikke, selvom jeg bruger meget tid på det også i fritiden. Men nu vil jeg først give mig til at se om jeg kan forstå hvad der sker i de forskellige filer, og så kan jeg måske lave om på det. Nu har jeg udskrevet originalerne og gemt dem for sig selv, så de ikke bliver væk når man roder med det :-)
Avatar billede ras2000 Nybegynder
19. april 2002 - 11:58 #64
Men først ville jeg rydde op i din database, hvis jeg var dig. Der er mange datoer der er sat ind som mødesteder, du har de samme instruktører stående på forskellige mådeer, og meget andet godt.
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