Avatar billede plato Juniormester
15. december 2003 - 19:44 Der er 28 kommentarer og
1 løsning

Vis default tekst ved tom DB felt.

Hejsa NG.

Jeg bruger denne her kode når mine anmeldelser skal listes:

<%
                                strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../db/anmeld.mdb")
                                Set objConn = Server.CreateObject ("ADODB.Connection")
                                objConn.Open strConnect   

                                strSQL = "SELECT * FROM anmeld WHERE titel LIKE '"  & karakter & "%' ORDER BY titel"
                                Set rs = objConn.Execute(strSQL)
                 


                                  Do While Not rs.EOF
                                    id = rs("id")
                                    titel = rs("titel")
                                    teaser = rs("teaser")

%>

De bliver listet efter A, B, C, osv..
Nu har jeg tilfældigvis ikke noget der kan listes efter G, hvordan gør man sådan den skriver f.eks "Ingen anmeldelser i denne kategori", hvis feltet er tomt?
Avatar billede thesurfer Nybegynder
15. december 2003 - 19:49 #1
prøv med:

do while not rs.eof
if isNull(rs) then
  response.write "Ingen anmeldelser i denne kategori"
else
  ' udskriv data
end if
Avatar billede syntax_hh Nybegynder
15. december 2003 - 19:50 #2
Kan du ikke bruge If rs.EOF (eller bof) then response.write "ingen i denne kategori"
Avatar billede thesurfer Nybegynder
15. december 2003 - 19:51 #3
ahh.. det var det han ville ha' :)
Avatar billede syntax_hh Nybegynder
15. december 2003 - 19:51 #4
hovsa... det var:
If rs.EOF = False Then Response.Write "Ingen i denne kategori!"
Avatar billede plato Juniormester
15. december 2003 - 19:52 #5
Der kommer ingen fejl men, den skriver heller ikke "Ingen bla bla bla"
Avatar billede plato Juniormester
15. december 2003 - 19:53 #6
Hovs, prøver lige syntax' :)
Avatar billede thesurfer Nybegynder
15. december 2003 - 19:54 #7
if rs.eof or rs.bof then
  response.write "ingen data for karakter '" & karakter & "'"
else
  Do While Not rs.EOF
    id = rs("id")
    titel = rs("titel")
    teaser = rs("teaser")
    'osv...'
  loop
end if
Avatar billede thesurfer Nybegynder
15. december 2003 - 19:55 #8
hov.. :)

  rs.movenext
  loop
end if
Avatar billede plato Juniormester
15. december 2003 - 19:58 #9
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../db/anmeld.mdb")
                                Set objConn = Server.CreateObject ("ADODB.Connection")
                                objConn.Open strConnect   

                                strSQL = "SELECT * FROM anmeld WHERE titel LIKE '"  & karakter & "%' ORDER BY titel"
                                Set rs = objConn.Execute(strSQL)
                 

                if rs.eof or rs.bof then
                      response.write "ingen data for karakter '" & karakter & "'"
                else

                                    Do While Not rs.EOF
                                    id = rs("id")
                                    titel = rs("titel")
                                    teaser = rs("teaser")
                                 
                rs.movenext
                  loop
                end if

Giver fejlen:
'loop' without 'do'
Avatar billede thesurfer Nybegynder
15. december 2003 - 20:00 #10
hmm.. det siger den normalt hvis du flytter "loop" ud for en if-sætning..
Avatar billede plato Juniormester
15. december 2003 - 20:04 #11
Hvis det betyder noget så er her hele koden:

<%
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../db/anmeld.mdb")
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.Open strConnect   

strSQL = "SELECT * FROM anmeld WHERE titel LIKE '"  & karakter & "%' ORDER BY titel"
Set rs = objConn.Execute(strSQL)
                 
if rs.eof or rs.bof then
response.write "ingen data for karakter '" & karakter & "'"
else

Do While Not rs.EOF
id = rs("id")
titel = rs("titel")
teaser = rs("teaser")
rs.movenext
loop
end if
%>
                 
<a style='font-family:tahoma, verdana;font-size:12px;color:#000000;font-weight:bold;' href="review.asp?id=<%=id%>"><b><u><%=titel%></u></b></a>&nbsp;&nbsp;&nbsp;Indlæg 

<%
AntalKommentarer=0
if isNumeric(ID) then
Set rs1=objConn.Execute("SELECT COUNT(*) FROM commentsanmeld where nyhedid=" & ID)
AntalKommentarer=rs1(0).Value
                                                   
Response.Write "(" & AntalKommentarer & ")"
                                                     
end if
%>
<br><%=teaser%><br><br>- <a style='font-family:tahoma, verdana;font-size:12px;color:#000000;' href="review.asp?id=<%=id%>">Læs anmeldelse</A><br><br>
                             
                          <br><br>
<%
                                rs.movenext
                                  loop
                                rs.Close
                                objConn.Close
                              %>
Avatar billede thesurfer Nybegynder
15. december 2003 - 20:06 #12
Prøv det her i stedet:

if (not rs.bof) And (not rs.eof) ten
  do while not rs.eof
    id = rs("id")
    titel = rs("titel")
    teaser = rs("teaser")
    rs.movenext
  loop
else
  response.write "ingen data for karakter '" & karakter & "'"
end if
Avatar billede plato Juniormester
15. december 2003 - 20:09 #13
Samme fejl:
'loop' without 'do'
Avatar billede thesurfer Nybegynder
15. december 2003 - 20:12 #14
ahh... det er ikke min del der er fejl i.. det er den her:

Set rs1=objConn.Execute("SELECT COUNT(*) FROM commentsanmeld where nyhedid=" & ID)
AntalKommentarer=rs1(0).Value
                                                   
Response.Write "(" & AntalKommentarer & ")"
                                                     
end if
%>
<br><%=teaser%><br><br>- <a style='font-family:tahoma, verdana;font-size:12px;color:#000000;' href="review.asp?id=<%=id%>">Læs anmeldelse</A><br><br>
                             
                          <br><br>
<%
                                rs.movenext
                                  loop <--- "loop" uden "do"
                                rs.Close
                                objConn.Close
                              %>
Avatar billede eagleeye Praktikant
15. december 2003 - 20:12 #15
Det er to steder i din kode nu. Og føste gang du har dette:

rs.movenext
loop
end if

Skal det slettes, hvis du har lavet koden som i 15/12-2003 20:04:30 igen
Avatar billede thesurfer Nybegynder
15. december 2003 - 20:14 #16
hvis koden fra 15/12-2003 20:12:13 skal udføres sammen med det andet, skal du fjerne de første rs.movenext, loop, end if
Avatar billede thesurfer Nybegynder
15. december 2003 - 20:15 #17
jeg tror nok at det er det eagleeye sagde :)
Avatar billede thesurfer Nybegynder
15. december 2003 - 20:20 #18
eagleeye> kan du ikke også tag et kig på http://www.eksperten.dk/spm/440256
den irriterer mig :)
Avatar billede plato Juniormester
15. december 2003 - 20:36 #19
Nu ser koden sådan ud:

<%
                                strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../db/anmeld.mdb")
                                Set objConn = Server.CreateObject ("ADODB.Connection")
                                objConn.Open strConnect   

                                strSQL = "SELECT * FROM anmeld WHERE titel LIKE '"  & karakter & "%' ORDER BY titel"
                                Set rs = objConn.Execute(strSQL)
                 

                if (not rs.bof) And (not rs.eof) then


                                    Do While Not rs.EOF
                                    id = rs("id")
                                    titel = rs("titel")
                                    teaser = rs("teaser")
                                 
               
else
  response.write "ingen data for karakter '" & karakter & "'"
end if

%>
                 
                                <a style='font-family:tahoma, verdana;font-size:12px;color:#000000;font-weight:bold;' href="review.asp?id=<%=id%>"><b><u><%=titel%></u></b></a>&nbsp;&nbsp;&nbsp;Indlæg 
<%
                                                    AntalKommentarer=0
                                                    if isNumeric(ID) then
                                                    Set rs1=objConn.Execute("SELECT COUNT(*) FROM commentsanmeld where nyhedid=" & ID)
                                                    AntalKommentarer=rs1(0).Value
                                                   
                                                    Response.Write "(" & AntalKommentarer & ")"
                                                      end if
                                                    %>
<br><%=teaser%><br><br>- <a style='font-family:tahoma, verdana;font-size:12px;color:#000000;' href="review.asp?id=<%=id%>">Læs anmeldelse</A><br><br>
                             
                          <br><br>
<%
                                rs.movenext
                                  loop
                                rs.Close
                                objConn.Close
                              %>

Det giver fejlen:
Expected 'Loop'

/reviews.asp, line 68

else
Avatar billede plato Juniormester
15. december 2003 - 20:41 #20
My bad..

Sådan ser den ud:
<%
                                strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../db/anmeld.mdb")
                                Set objConn = Server.CreateObject ("ADODB.Connection")
                                objConn.Open strConnect   

                                strSQL = "SELECT * FROM anmeld WHERE titel LIKE '"  & karakter & "%' ORDER BY titel"
                                Set rs = objConn.Execute(strSQL)
                 

                if rs.eof or rs.bof then
response.write "ingen data for karakter '" & karakter & "'"
else

Do While Not rs.EOF
id = rs("id")
titel = rs("titel")
teaser = rs("teaser")
rs.movenext
loop
end if


%>
                 
                                <a style='font-family:tahoma, verdana;font-size:12px;color:#000000;font-weight:bold;' href="review.asp?id=<%=id%>"><b><u><%=titel%></u></b></a>&nbsp;&nbsp;&nbsp;Indlæg 
<%
                                                    AntalKommentarer=0
                                                    if isNumeric(ID) then
                                                    Set rs1=objConn.Execute("SELECT COUNT(*) FROM commentsanmeld where nyhedid=" & ID)
                                                    AntalKommentarer=rs1(0).Value
                                                   
                                                    Response.Write "(" & AntalKommentarer & ")"
                                                      end if
                                                    %>
<br><%=teaser%><br><br>- <a style='font-family:tahoma, verdana;font-size:12px;color:#000000;' href="review.asp?id=<%=id%>">Læs anmeldelse</A><br><br>
                             
                          <br><br>
<%
                               
                                rs.Close
                                objConn.Close
                              %>

Men så opstår et andet prob.
Koden:
<%
                                                    AntalKommentarer=0
                                                    if isNumeric(ID) then
                                                    Set rs1=objConn.Execute("SELECT COUNT(*) FROM commentsanmeld where nyhedid=" & ID)
                                                    AntalKommentarer=rs1(0).Value
                                                   
                                                    Response.Write "(" & AntalKommentarer & ")"
                                                      end if
                                                    %>

Giver fejl, der er jo selvfølgelig ikke noget den kan vise.

ingen data for karakter 'G'    Indlæg
Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'nyhedid='.

/reviews.asp, line 78


Kan det løses?
Avatar billede eagleeye Praktikant
15. december 2003 - 20:42 #21
som jeg skrev hvis du tager udgangspunk i din kode fra: 15/12-2003 20:04:30
Og fjerner føste gang du ´støder på :
rs.movenext
loop
end if


Så skulle den være der..... 2 sekunder
Avatar billede eagleeye Praktikant
15. december 2003 - 20:42 #22
Prøv:


<%
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../db/anmeld.mdb")
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.Open strConnect   

strSQL = "SELECT * FROM anmeld WHERE titel LIKE '"  & karakter & "%' ORDER BY titel"
Set rs = objConn.Execute(strSQL)
                 
if rs.eof or rs.bof then
response.write "ingen data for karakter '" & karakter & "'"
else

Do While Not rs.EOF
id = rs("id")
titel = rs("titel")
teaser = rs("teaser")

%>
                 
<a style='font-family:tahoma, verdana;font-size:12px;color:#000000;font-weight:bold;' href="review.asp?id=<%=id%>"><b><u><%=titel%></u></b></a>&nbsp;&nbsp;&nbsp;Indlæg 

<%
AntalKommentarer=0
if isNumeric(ID) then
Set rs1=objConn.Execute("SELECT COUNT(*) FROM commentsanmeld where nyhedid=" & ID)
AntalKommentarer=rs1(0).Value
                                                   
Response.Write "(" & AntalKommentarer & ")"
                                                     
end if
%>
<br><%=teaser%><br><br>- <a style='font-family:tahoma, verdana;font-size:12px;color:#000000;' href="review.asp?id=<%=id%>">Læs anmeldelse</A><br><br>
                             
                          <br><br>
<%
                                rs.movenext
                                  loop
                                rs.Close
                                objConn.Close
                              %>
Avatar billede eagleeye Praktikant
15. december 2003 - 20:49 #23
og så ikke helt afligevel... ;)
Der skal et End If ind til sidst imellem loop og rs.Close:

<%
                                rs.movenext
                                  loop
                                End if
                                rs.Close
                                objConn.Close
                              %>
Avatar billede plato Juniormester
15. december 2003 - 20:53 #24
Smider lige det end if ind..Men det virker altså alligevel ;-)

Men nogle forslag til det andet prob, eller skal jeg oprette et nyt spm? :-)
Avatar billede plato Juniormester
15. december 2003 - 20:54 #25
Hov...Hehe..Så forkert.. Prøver det :)
Avatar billede plato Juniormester
15. december 2003 - 20:56 #26
Fedt det virker!

Men ehmm.. Hvordan gør jeg nu med pts?
Avatar billede eagleeye Praktikant
15. december 2003 - 20:57 #27
Det bestemmer du.
Avatar billede plato Juniormester
15. december 2003 - 21:04 #28
Okies..

Eagle 20
surfer 10

Men jeg mangler dog et svar fra jer ;)
Avatar billede eagleeye Praktikant
15. december 2003 - 21:07 #29
Ok, jamen det kan vi ikke ha mangler :)
Så her et 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