Avatar billede meken Nybegynder
02. marts 2003 - 17:14 Der er 20 kommentarer og
1 løsning

Vis ikke billede i udtag fra DB!

Jeg har et udtag fra en db hvor der er et billede i. Men jeg vil ikke have billedet vidst i udtaget. Hvordan gør jeg så kun teksten bliver taget ud fra db'en??

Håber i har tid :o)
Avatar billede meken Nybegynder
02. marts 2003 - 17:16 #1
vidst = vist
Avatar billede mortrr Praktikant
02. marts 2003 - 17:19 #2
Du skal jo altid lave noget aktivt for at få noget vist fra en database.

Så jeg vil gætte på at du mener at du har noget tekst i en database, som kunne indeholde noget html-kode, og at du ved udtræk ikke vil have vist denne html-kode?

Hvad med:
Response.Write Server.HTMLEncode(rs("Feltet"))

- Morten
Avatar billede meken Nybegynder
02. marts 2003 - 17:25 #3
Jeg har en tabel hvor der er en html kode med f.eks.
< img border="1" align="left" src="billede.gif" width="30" height="30" >
Det jeg så vil have at alle html koder med img ikke skal vises i udtaget...
Avatar billede meken Nybegynder
02. marts 2003 - 17:26 #4
men der er også alm. tekst i den tabel...
Avatar billede mortrr Praktikant
02. marts 2003 - 17:37 #5
OK - hvis det KUN er <img du vil have fjernet, så skal du ind og søge efter det.

Det kunne vel blive til:
Function stripImgTag(streng)
  Set objRegExp = New Regexp
  objRegExp.IgnoreCase = True
  objRegExp.Global = True
  objRegExp.Pattern = "<img(.|\n)+?>"
  stripImgTag= objRegExp.Replace(streng, "")
  Set objRegExp = Nothing
End Function

- Morten
Avatar billede meken Nybegynder
02. marts 2003 - 17:52 #6
hmm , kan ikke rigtigt få det til at fungere...
Avatar billede mortrr Praktikant
02. marts 2003 - 17:58 #7
En hurtig test:
<% @language=vbscript%><%

Function stripImgTag(streng)
  Set objRegExp = New Regexp
  objRegExp.IgnoreCase = True
  objRegExp.Global = True
  objRegExp.Pattern = "<img(.|\n)+?>"
  stripImgTag= objRegExp.Replace(streng, "")
  Set objRegExp = Nothing
End Function
testStreng="Her er noget tekst. <img border=""1"" align=""left"" src=""billede.gif"" width=""30"" height=""30"" >Her er noget tekst."
%><body>
<%=stripImgTag(testStreng)%>
</body>

Det ser ud til at virke.

- Morten
Avatar billede mortrr Praktikant
02. marts 2003 - 17:59 #8
Vis evt hvad du forsøger, hvis det ikke virker.

- Morten
Avatar billede meken Nybegynder
02. marts 2003 - 18:04 #9
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../noter/noter.mdb")

SQL = "SELECT TOP 3 * FROM notes ORDER BY dato DESC"
      Set rs = myConn.ExeCute(SQL)

%>           

<% @language=vbscript%>
<%
          Function stripImgTag(tekstnote)
          Set objRegExp = New Regexp
          objRegExp.IgnoreCase = True
          objRegExp.Global = True
          objRegExp.Pattern = "<img(.|\n)+?>"
          stripImgTag= objRegExp.Replace(tekstnote, "")
          Set objRegExp = Nothing
        End Function
   
      %>
      <body>
<%=stripImgTag(tekstnote)%>
</body>
      <br><br>
      </td>
     
    </tr>
  </table>
</div>
            <%
    rs.MoveNext
    loop
    end if
%>
Avatar billede meken Nybegynder
02. marts 2003 - 18:06 #10
Den kommer med denne fejl:

Fejltype:
Active Server Pages, ASP 0140 (0x80004005)
Kommandoen @ skal være den første kommando i en Active Server Page.
/nyt_design/start/Default.asp, line 43
Avatar billede mortrr Praktikant
02. marts 2003 - 18:08 #11
<% @language=vbscript%>

Det er en linie til at fortælle asp hvilket sprog man bruger. Den må kun stå som linie 1.
Bare fjern den.
Avatar billede meken Nybegynder
02. marts 2003 - 18:09 #12
ok, så kommer denne fejl:

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EA)
Der er en syntaksfejl
/nyt_design/start/Default.asp, line 45
Function stripImgTag(tekstnote)
Avatar billede meken Nybegynder
02. marts 2003 - 18:10 #13
linie 45 på siden er:
Function stripImgTag(tekstnote)
Avatar billede mortrr Praktikant
02. marts 2003 - 18:12 #14
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../noter/noter.mdb")

SQL = "SELECT TOP 3 * FROM notes ORDER BY dato DESC"
      Set rs = myConn.ExeCute(SQL)

          Function stripImgTag(tekstnote)
          Set objRegExp = New Regexp
          objRegExp.IgnoreCase = True
          objRegExp.Global = True
          objRegExp.Pattern = "<img(.|\n)+?>"
          stripImgTag= objRegExp.Replace(tekstnote, "")
          Set objRegExp = Nothing
        End Function
   
      %>
      <body>
<%=stripImgTag(tekstnote)%>
</body>
      <br><br>
      </td>
     
    </tr>
  </table>
</div>
            <%
    rs.MoveNext
    loop
    end if
%>
Avatar billede mortrr Praktikant
02. marts 2003 - 18:15 #15
Og så skal du lige have den til at hente fra recordsettet:

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

SQL = "SELECT TOP 3 * FROM notes ORDER BY dato DESC"
      Set rs = myConn.ExeCute(SQL)

          Function stripImgTag(tekstnote)
          Set objRegExp = New Regexp
          objRegExp.IgnoreCase = True
          objRegExp.Global = True
          objRegExp.Pattern = "<img(.|\n)+?>"
          stripImgTag= objRegExp.Replace(tekstnote, "")
          Set objRegExp = Nothing
        End Function
   
      %>
      <body>
<%=stripImgTag(rs("tekstnote"))%>
</body>
      <br><br>
      </td>
     
    </tr>
  </table>
</div>
            <%
    rs.MoveNext
    loop
    end if
%>
Avatar billede meken Nybegynder
02. marts 2003 - 18:17 #16
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EA)
Der er en syntaksfejl
/nyt_design/start/Default.asp, line 41
Function stripImgTag(tekstnote)
Avatar billede mortrr Praktikant
02. marts 2003 - 18:27 #17
Med diverse oprydning i din kode bliver det til:
<body><table><%
Function stripImgTag(tekstnote)
    Set objRegExp = New Regexp
    objRegExp.IgnoreCase = True
    objRegExp.Global = True
    objRegExp.Pattern = "<img(.|\n)+?>"
    stripImgTag= objRegExp.Replace(tekstnote, "")
    Set objRegExp = Nothing
End Function

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

SQL = "SELECT TOP 3 * FROM notes ORDER BY dato DESC"
Set rs = myConn.ExeCute(SQL)
if not rs.eof then
    %><table><%
    do while not rs.eof
        %><tr><td><%=stripImgTag(rs("tekstnote"))%></td></tr><%
        rs.MoveNext
    loop
end if
%></body>
</html>

Der er ikke noget galt i koden (og var det sådan set heller ikke før),
men du har en loop uden do og en end if uden if, så det er svært at sige hvad du har før det viste, som kan generere syntaksfejlen.

Samt diverse html-koder strøet ud over det hele.

- Morten
Avatar billede mortrr Praktikant
02. marts 2003 - 18:28 #18
og så glemte jeg selv en </table> lige før end if ;-)
Avatar billede meken Nybegynder
02. marts 2003 - 18:41 #19
puha! Der skulle ændres noget hist og her, men fik det til sidst til at virker!

Takker mange gange, du får points !
Avatar billede meken Nybegynder
02. marts 2003 - 18:41 #20
Kan du svare igen??
Avatar billede meken Nybegynder
02. marts 2003 - 18:43 #21
nå du har fået. Tak igen :o)
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