Avatar billede denz Nybegynder
28. oktober 2005 - 10:23 Der er 18 kommentarer

asp i database

Kan man gøre det at man hente sit html og ASP script i sin datbase, så man f.eks har et felt i databasen som hedder indhold, i den har man så f.eks:
<html>
<head>
<title>lalala</title>
</head>

<body>
<%response.write ("Hej dette er en tes")%>
</body
</html>

Men spørgsmålet er så bare hvordan for jeg udskrevet det i mit asp dokument.. har prøvet sådan her:
  <%
Set Rs = Server.CreateObject("ADODB.Connection")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../database/database.mdb")
sql = "SELECT * FROM sider"
Set Rec = Rs.Execute(sql)
%>
<%=Rec("indhold")%>

Men der viser den bare ingen ting..

hva skal man gøre ??
Avatar billede fennec Nybegynder
28. oktober 2005 - 10:33 #1
Hvis du vil gemme ASP kode i databasen, skal det hele gemmes som ren ASP kode:

response.write "<html>"
for f=0 to 10
  response.write f
next
response.write "</html>"

du kan så bruge execute() komandoen:
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../database/database.mdb")
sql = "SELECT * FROM sider"
Set rs = conn.Execute(sql)

if not rs.eof then
  Execute(rs("indhold"))
end if
Avatar billede denz Nybegynder
28. oktober 2005 - 10:38 #2
Hmm det er jo for jeg har en masse sider som jeg vil integrer i design, så vil have html og asp sammen i databasen altså en side f.eks..
Avatar billede denz Nybegynder
28. oktober 2005 - 10:39 #3
f.eks det er det her jeg har i mit aspdocument:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<p>
  <%
Set Rs = Server.CreateObject("ADODB.Connection")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath(""../database/database.mdb"")
sql = "SELECT * FROM Forum order by dato DESC"
Set Rec = Rs.Execute(sqlf)
%>
<%
Do while not Rec.EOF
overskrift = Rec("overskrift")
ID = Rec("Id")
dato = Rec("dato")

%>

<table id="table_liste"  width="500">
  <tr>
    <td id="liste" width="400" height="21"><a href="vis.asp?id=<%=ID%>"><%=overskrift%></a></td>
    <td id="dato" width="100"><%=dato%></td> 
  </tr>
</table>
<%
Rec.MoveNext
loop
rs.Close
Set rs = nothing
%>

</body>
</html>



det det jeg vil have ud fra databasen
Avatar billede thomas_yde Nybegynder
28. oktober 2005 - 10:51 #4
denz: Hvis jeg var dig ville jeg gemme dit design i en pseudo template fil.
fx.
filnavn: design.asp
<%
Sub WriteTop
Response.Write "din top HTML kode"
End Sub

Sub ....
%>

Du har formentlig et sted hvor dit indhold skal printes ud.
Så skriver du de subs der skal til for at printe din side ud til din indholdstable eller div. Og efterfølgende subs til at afslutte siden.


Herefter kan du inkludere din template på andre sider:

filnavn: default.asp
include file="design.asp"
<%
WriteTop
...og de andre subs du måtte have
%>

På den måde kan du nemt, ud fra en fil, skifte design på alle dine websider.
Avatar billede fennec Nybegynder
28. oktober 2005 - 10:53 #5
Som sagt skal det gemmes som ren ASP i databasen. Så den kode du har vist der skal gemmes som:

response.write "<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.1//EN"" ""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"">"
response.write "<html xmlns=""http://www.w3.org/1999/xhtml"">"
response.write "<head>2
response.write "<title>Untitled Document</title>"
response.write "<link href=""style.css"" rel=""stylesheet"" type=""text/css"" />"
response.write "</head>"
response.write "<body>"
response.write "<p>"
Set Rs = Server.CreateObject("ADODB.Connection")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath(""../database/database.mdb"")
sql = "SELECT * FROM Forum order by dato DESC"
Set Rec = Rs.Execute(sqlf)
Do while not Rec.EOF
...
...

Men jeg vil også anbefale at du nøje overvejer dette. Normalt gør man som thomas_yde er inde på.
Avatar billede denz Nybegynder
28. oktober 2005 - 11:03 #6
forstår jeg ik helt.... er ik helt med på hvordan det skal funke...
Avatar billede denz Nybegynder
28. oktober 2005 - 11:13 #7
har lavet en masse sider som jeg gerne vil have i et design.. altså det skal nærmest virke lige som en iframe... men vil ik have iframe på min side.. så tænkte jeg bare om man ikke bare kunne smække siden ind i databasen og man så kunne hente den der fra alt afhænning af id.. når man trykker på link
Avatar billede denz Nybegynder
28. oktober 2005 - 11:14 #8
Altså smække de sider ind i i databasen.. ikke index siden, har nemli forskellige moduler, f.eks forum, chat, og så vidre..
Avatar billede thomas_yde Nybegynder
28. oktober 2005 - 11:18 #9
En meget simpel udgave af mit eksempel:

filnavn: design.asp
<%
Sub WriteTop
Response.Write "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">"
Response.Write "<html><head></head><body>"
Response.Write "<table><tr><td><div style=""color:red;border:1px solid black;"">"
End Sub

Sub WriteBottom
Response.Write "</td></tr></table>"
Response.Write "</body></html>"
End Sub
%>

filnavn: default.asp
<!-- #include file="design.asp"-->
<%


WriteTop

'Her kan din kode til indholdet så komme
Response.Write "Hello World, this is my first template design"

WriteBottom
%>
Avatar billede fennec Nybegynder
28. oktober 2005 - 11:25 #10
Nu er jeg heler ikke helt med længere....

Du har nu, lad os bare sige 3 sider (index.asp, forum.asp og chat.asp)
Disse sider har hver deres layout og ASP funktioner

Det du nu gerne vil, er kun at have EN side, men den skal kunne køre 3 forskellige layout og ASP funktioner???
Avatar billede denz Nybegynder
28. oktober 2005 - 11:37 #11
Nej den skal ikke køre 3 forskellige layouts, kun scripts og css. du skal nærmest forstille dig at det skal være lige som en slags iframe.. og inde i iframe skal der komme inholdet af f.eks forum, når man trykker på forum viser den liste.asp over i mit "iframe" altså ik iframe men den kode jeg skal bruge.. ved ik lige hvad der er nemmeste og gøre men tænkte bare at man kunne hente det fra databasen...
Avatar billede fennec Nybegynder
28. oktober 2005 - 11:51 #12
Så er det helt klart thomas_yde's forslag du er ude i. Prøv dig med det, så ser du sikkert lyset :o)

Design filen bliver så bare includeret på de forskellige sider, så du kun skal ændre designet i den, også er det lavet på alle sider.
Avatar billede denz Nybegynder
28. oktober 2005 - 12:01 #13
hmm kan bare ikke se hvor jeg for databasen ind i det...
Avatar billede fennec Nybegynder
28. oktober 2005 - 12:16 #14
Selve layoutet ligger ikke i databasen, men i en fil. Det gør det også nemmere/hurtigere at rette, da det ikke skal igennem databasen først.
Avatar billede denz Nybegynder
28. oktober 2005 - 12:32 #15
nu siger du selve layoutet er det så min index fil eller hva ?
Avatar billede fennec Nybegynder
28. oktober 2005 - 12:47 #16
Nej. Prøv at se thomas_yde's eks 11:18:50.

Der laves 2 filer, en design og default. Default svarer til din index.asp, men uden layoutet, som er flyttet over i design.asp.

Du kan så fjerne layoutet fra dine andre filer og inkludere design.asp i stedet.

Du vil altså stadig have en fil der hedder chat.asp og forum.asp, men det overordnet design ligger i design.asp
Avatar billede denz Nybegynder
07. november 2005 - 11:55 #17
har forstået det nu.. så lukker tråden.. men thomas_yde.. smid et svar
Avatar billede thomas_yde Nybegynder
07. november 2005 - 17:18 #18
ok
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