Avatar billede cass12 Nybegynder
10. januar 2005 - 19:33 Der er 14 kommentarer og
1 løsning

Fejl ved Response.Write

Hey experter,

Jeg har nogen problemer med min "Response.Write"
Formålet med koden er at den skal vise hvilken "Type" altså fortælle om det er et spil eller en film.

Her er det lille stykke som åbenbart laver fejlen:

Response.Write "Type: " & rs("type") & "<br>"

og her er hele koden:

<html>
<head>
</head>
<body link="#000000" vlink="#000000" alink="#000000">
<table border="0" width="100%">
<tr>
<td valign='top'>

<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/database.mdb")

strSQL = "SELECT * FROM [elements] where [id] = "& request.querystring("id") &""

Set rs = myConn.Execute(strSQL)
If Not rs.EOF Then

  sql = "UPDATE [elements] SET [antal] = [antal] + 1 WHERE [id] = "& request.querystring("id") &""
  myConn.Execute(SQL)

Else
    ' Hvis der ikke er skrevet noget
    Response.Write "<font color='#ff0000' size='1' face='Verdana'>Der er en opstået en teknisk fejl, som gør, at dit klik på dette spil ikke blev registreret og derfor ikke vil kunne ses på Top 10-siden. Kontakt venligst webmasteren.<br><br></font>"
 
  myConn.Execute(sql)
End If

myConn.Close
Set Conn = Nothing
%>
<%
' asp-koden er begyndt, og databasen åbnes herunder
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/database.mdb")

' vi fortæller den, hvilken tabel i databasen, den skal åbne, og hvilke data, der skal hentes
strSQL = "SELECT * FROM [elements] where [id] = "& request.querystring("id") &""

' den udfører "strSQL" (herover)
Set rs = myConn.Execute(strSQL)

' hvis der ER fundet noget i "strSQL"
If Not (rs.BOF Or rs.EOF) Then
' bliv ved indtil der ikke er flere resultater
Do While Not rs.EOF

' skriv følgende
Response.Write "<font face='Verdana'>"
' indsætter spillets navn i fed skrift
Response.Write "<b>" & rs("navn") & "</b><br>"
' indsætter billedet af spillet - bemærk at " skal skrives som ', fordi det ellers afslutter Response.Write
Response.Write "<strong><img width='100' height='65' src='" & rs("picture") & "' border='0'>"
Response.Write "<br><font size='1' face='Verdana'>"
Response.Write "<img border='0' src='/images/arrow_blue.gif'>"
Response.Write "<a target='_blank' href='" & rs("link") & "'>Klik her for at åbne " & rs("type") &""
Response.Write "</a></font></strong><br>"
Response.Write "<font face='Verdana' size='1'><br>"
Response.Write "<b>Beskrivelse:</b><br>"
Response.Write "" & rs("beskrivelse") & ""
Response.Write "</font>"
' lukker gammel celle og åbner ny
Response.Write "</td><td valign='top'>"
Response.Write "<font face='Verdana'>"
Response.Write "<font face='Verdana'><b>" & rs("navn") & "</b></font>"
    Response.Write "<font face='Verdana' size='2'><br>"
    Response.Write "Hits: " & rs("antal") & "<br>"
    Response.Write "Type: " & rs("type") & "<br>"
    Response.Write "Kategori: " & rs("kategori") & "<br>"
    Response.Write "Filtype: " & rs("filtype") & "<br>"
    Response.Write "Multiplayer: " & rs("multiplayer") & "<br>"
    Response.Write "Oprettet: " & rs("dato") & "<br><br>"
Response.Write "</font>"
' gå til næste post (som i dette tilfælde ikke eksisterer, da der kun er ét spil med denne id)
rs.MoveNext
Loop
' hvis der ikke findes et resultat med denne id
Else
Response.Write "<font face='Verdana'>"
Response.Write "Der blev ikke fundet et spil, formodentlig pga. en teknisk fejl!"
Response.Write "</font>"
End If

' og så lukkes databaseforbindelsen - det behøves ikke, men det er god skik
myConn.Close
Set Conn = Nothing
' asp-koden afsluttes
%>

</td>
</tr>
</table>
</font>
<br><br>
<hr size="1" color="#000000">
<form method="POST" action="spilprofil_kommentar.asp?id=<%=request.querystring("id")%>">
<font face="Verdana" size="2">Opret kommentar:<br></font>
  <font size="1" face="Verdana"><br>
  Navn<br>
  <input type="text" name="navn" size="20"><br>
  <br>
  Kommentar<br>
  <textarea rows="3" name="kommentar" cols="20"></textarea><br>
  <input type="submit" value="Send" name="submit"><input type="reset" value="Nulstil" name="reset">
</font>
</form>

<hr size="1" color="#000000">
<font size="2" face="Verdana">Kommentarer:</font>
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/database.mdb")

strSQL = "SELECT [ID], [spilfilm-id], [kommentar], [navn], [date] FROM [kommentar] WHERE [spilfilm-id] = " & Request.Querystring("id") & " ORDER BY date DESC"

Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then

    Do While Not rs.EOF
    Response.Write "<font size='1' face='Verdana'><br><br>"
    Response.Write "Navn: " & rs("navn") &"<br>"
    Response.Write "Dato: " & rs("date") &"<br>"
    Response.Write "Kommentar: " & rs("kommentar") &""
    Response.Write "</font>"
    rs.MoveNext
    Loop
    Else
    ' Hvis der ikke er skrevet noget
    Response.Write "<br><br><font size='1' face='Verdana'>Der er endnu ingen kommentarer her!</font>"
End If

myConn.Close
Set Conn = Nothing
%>

</body>
</html>


p.s i kan eventuelt se hvordan det virkede for den gamle kode, men ikke den nye på de her to adresser.

Det her er det gamle system: http://www.web-gamez.dk/spilprofil.asp?id=65

og det her er det nyt system: http://www.web-gamez.dk/skriv.asp?id=65

Håber i kan hjælpe...

Hilsen Jakob
Avatar billede kalp Novice
10. januar 2005 - 19:39 #1
<font face="Courier New, Courier, mono" size="2">
                              Type<% = rs("type") %>
                              </font>

kan du ikke gøre sådan?
Avatar billede kalp Novice
10. januar 2005 - 19:40 #2
hvis ikke så er jeg meget bedre til at finde en løsning hvis du kan sige hvilken fejl du får:)
Avatar billede cass12 Nybegynder
10. januar 2005 - 19:50 #3
Det virker desværre ikke, og jeg "får" ikke nogen fejl, fordi den bare skriver "Type: "... (Normalt skriver den jo en fejlmelding, men det gør den ikke her for den er rigtig på en måde...
Avatar billede Jman Praktikant
10. januar 2005 - 19:52 #4
Brygte du også "type" i din gamle, der virker ??
For type er et reserveret ord, og det kan give problemer
Avatar billede kalp Novice
10. januar 2005 - 19:53 #5
Response.Write "Hits: " & rs("antal") & "<br>"


virker det? for hvis den gør må det være i din database du lige må en tur og kigge.. vil jeg tro..

angående type.. så bruger jeg præcis det samme uden problemer:)
Avatar billede cass12 Nybegynder
10. januar 2005 - 19:55 #6
Response.Write "Hits: " & rs("antal") & "<br>"

den virker helt fint som du kan se på de 2 link..

Jeg har også været i db og kigge og der er ingen problemer.
Avatar billede kalp Novice
10. januar 2005 - 19:55 #7
type går jeg ud fra er af datatypen tekst?
Avatar billede kalp Novice
10. januar 2005 - 19:57 #8
hmm.. ellers post også det gamle så kan vi se hvad forskellen er og hvis du ellers kan huske på nogen nye ting du har lavet så skriv det med:)
Avatar billede cass12 Nybegynder
10. januar 2005 - 20:01 #9
men har lige set et problem. Hvis i kigger på http://www.web-gamez.dk/spilprofil.asp?id=65 står der kun "Klik her for at åbne" når man skal åbne et spil/film og der virker "type"

Men når man så går ind på http://www.web-gamez.dk/skriv.asp?id=65 ser man at der står "Klik her for at åbne spil. Kan det så ikke være muligt at den kommer frem i linket i stedet for "Type"
Avatar billede cass12 Nybegynder
10. januar 2005 - 20:02 #10
den gamle kode er:

<html>

<head>
</head>

<body link="#000000" vlink="#000000" alink="#000000">
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/database.mdb")

strSQL = "SELECT * FROM [elements] where [id] = "& request.querystring("id") &""

Set rs = myConn.Execute(strSQL)
If Not rs.EOF Then

  sql = "UPDATE [elements] SET [antal] = [antal] + 1 WHERE [id] = "& request.querystring("id") &""
  myConn.Execute(SQL)

Else
    ' Hvis der ikke er skrevet noget
    Response.Write "<font color='#ff0000' size='1' face='Verdana'>Der er en opstået en teknisk fejl, som gør, at dit klik på dette spil ikke blev registreret og derfor ikke vil kunne ses på Top 10-siden. Kontakt venligst webmasteren.<br><br></font>"
 
  myConn.Execute(sql)
End If

myConn.Close
Set Conn = Nothing
%>
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/database.mdb")


strSQL = "SELECT * FROM [elements] where [id] = "& request.querystring("id") &""

Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then

    Do While Not rs.EOF
    Response.Write "<font face='Verdana'><b>" & rs("navn") & "</b></font>"
    Response.Write "<font face='Verdana' size='1'><br>"
    Response.Write "Hits: " & rs("antal") & "<br>"
    Response.Write "Type: " & rs("type") & "<br>"
    Response.Write "Kategori: " & rs("kategori") & "<br>"
    Response.Write "Filtype: " & rs("filtype") & "<br>"
    Response.Write "Multiplayer: " & rs("multiplayer") & "<br>"
    Response.Write "Oprettet: " & rs("dato") & "<br><br>"
    Response.Write "</font>"
    Response.Write "<strong><img width='100' height='65' src='" & rs("picture") & "'>"
    Response.Write "<br><font size='1' face='Verdana'>"
    Response.Write "<img border='0' src='/images/arrow_blue.gif'>"
    Response.Write "<a target='_blank' href='" & rs("link") & "'>Klik her for at åbne " & rs("type") &""
    Response.Write "</a></font></strong><br>"
    Response.Write "<font face='Verdana' size='1'><br>"
    Response.Write "<b>Beskrivelse:</b><br>"
    Response.Write "" & rs("beskrivelse") & ""
    rs.MoveNext
    Loop
    Else
    ' Hvis der ikke er fundet noget i databasen
    Response.Write "*TEKNISK FEJL*"
End If

myConn.Close
Set Conn = Nothing
%>

</font>
<br><br>
<hr size="1" color="#000000">
<form method="POST" action="spilprofil_kommentar.asp?id=<%=request.querystring("id")%>">
<font face="Verdana" size="2">Opret kommentar:<br></font>
  <font size="1" face="Verdana"><br>
  Navn<br>
  <input type="text" name="navn" size="20"><br>
  <br>
  Kommentar<br>
  <textarea rows="3" name="kommentar" cols="20"></textarea><br>
  <input type="submit" value="Send" name="submit"><input type="reset" value="Nulstil" name="reset">
</font>
</form>

<hr size="1" color="#000000">
<font size="2" face="Verdana">Kommentarer:</font>
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/database.mdb")

strSQL = "SELECT [ID], [spilfilm-id], [kommentar], [navn], [date] FROM [kommentar] WHERE [spilfilm-id] = " & Request.Querystring("id") & " ORDER BY date DESC"

Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then

    Do While Not rs.EOF
    Response.Write "<font size='1' face='Verdana'><br><br>"
    Response.Write "Navn: " & rs("navn") &"<br>"
    Response.Write "Dato: " & rs("date") &"<br>"
    Response.Write "Kommentar: " & rs("kommentar") &""
    Response.Write "</font>"
    rs.MoveNext
    Loop
    Else
    ' Hvis der ikke er skrevet noget
    Response.Write "<br><br><font size='1' face='Verdana'>Der er endnu ingen kommentarer her!</font>"
End If

myConn.Close
Set Conn = Nothing
%>

</body>

</html>
Avatar billede Jman Praktikant
10. januar 2005 - 20:07 #11
prøv evt at deklarere rs("type") inden så du laver
type = rs("type)
og så udskifter alle steder hvor der er rs("type") til type

Har selv tidligere været ude for at et DB felt ikke kan blive vist mere end en gang i et loop, men det var vist generelt for felttype notat
- Men det er da et forsøg :)
Avatar billede kalp Novice
10. januar 2005 - 20:08 #12
hvis superior's forslag ikke virker så prøve lige at lav en database connection til din "type" bare nede i hjørnet og se om den kan udskrives.
Avatar billede w13 Novice
10. januar 2005 - 20:10 #13
Du henter jo "type" ned to gange fra databasen... Det kan ikke lade sig gøre. Du bør oprette en såkaldt "session"...
Indsæt:
Session("type") = rs("type")
Mellem:
Do While Not rs.EOF
og:
' skriv følgende

Og ret de to steder, hvor der står " & rs("type") & " til " & session("type") & "... Så sku' det virke... =)
Avatar billede cass12 Nybegynder
10. januar 2005 - 20:12 #14
Du er genialt w13...

Det virker nu....

Tak for svarene alle jer andre :D
Avatar billede w13 Novice
10. januar 2005 - 20:13 #15
Svar =)
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