Avatar billede wildthing Nybegynder
24. november 2003 - 12:57 Der er 10 kommentarer og
1 løsning

fejl i IF sætning

Dette er sikkert enormt banalt, og kan findes andetsteds, men jeg kan ikke umiddelbart søge fejlen i eksperten, så her kommer spørgsmålet.

jeg har en simpel testkode som vist nedenfor. min database afspejler de 3 felter navn,tlf og init.

Hvorfor vil min if sætning aldrig være "true". Det fungerer altid fint hvis jeg vil finde en bestemt værdi, mens når jeg søger som her efter personer("init")="" så bliver den aldrig "true". Jeg har forsøgt med trim, len, null osv i alle afskygninger for at finde en omvej, men nej...

Er der en der vil være så venlig lige at skære det ud for mig?

Wildthing

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="forbindelse.asp"-->

<%
Set personer = Server.CreateObject ("ADODB.Recordset")
personer.Open "SELECT * FROM test", database
%>

<html>
<body>

<table>
<%
While NOT personer.EOF
if personer("init") = "" then
response.write "yes"
else
response.write "no"
end if

    If farve = "#CCCCCC" Then
        farve = "#EEEEEE"
    Else
        farve = "#CCCCCC"
    End if
%>

<tr bgcolor = "<% = farve%>">
<td><% = personer.fields ("navn")%></td>
<td><% = personer.fields ("tlf")%></td>
<td><% = personer.fields ("init")%></td>
</tr>

<%
personer.movenext
wend
%>

</body>
</html>
her er koden
Avatar billede medions Nybegynder
24. november 2003 - 13:01 #1
Virker det her ik'?

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="forbindelse.asp"-->

<%
Set personer = Server.CreateObject ("ADODB.Recordset")
personer.Open "SELECT * FROM test", database
%>

<html>
<body>

<table>
<%
intCount = 0
While NOT personer.EOF
if personer("init") = "" then
response.write "yes"
else
response.write "no"
end if

    If intCount = 1 Then
        farve = "#EEEEEE"
    intCount = 2
    Else
        farve = "#CCCCCC"
    intCount = 1
    End if
%>

<tr bgcolor = "<% = farve%>">
<td><% = personer.fields ("navn")%></td>
<td><% = personer.fields ("tlf")%></td>
<td><% = personer.fields ("init")%></td>
</tr>

<%
personer.movenext
wend
%>

</body>
</html>

//>Rune
Avatar billede medions Nybegynder
24. november 2003 - 13:01 #2
Det skal nok oxo være sådan her:

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="forbindelse.asp"-->

<%
Set personer = Server.CreateObject ("ADODB.Recordset")
personer.Open "SELECT * FROM test", database
%>

<html>
<body>

<table>
<%
intCount = 0
While NOT personer.EOF
if personer("init") = "" then
response.write "yes"
else
response.write "no"
end if

    If intCount = 1 Then
        farve = "#EEEEEE"
    intCount = 2
    Else
        farve = "#CCCCCC"
    intCount = 1
    End if
%>

<tr>
<td bgcolor="<% = farve%>"><% = personer.fields ("navn")%></td>
<td bgcolor="<% = farve%>"><% = personer.fields ("tlf")%></td>
<td bgcolor="<% = farve%>"><% = personer.fields ("init")%></td>
</tr>

<%
personer.movenext
wend
%>

</body>
</html>

//>Rune
Avatar billede medions Nybegynder
24. november 2003 - 13:02 #3
Hov *G*

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="forbindelse.asp"-->

<%
Set personer = Server.CreateObject ("ADODB.Recordset")
personer.Open "SELECT * FROM test", database
%>

<html>
<body>

<table>
<%
intCount = 1
While NOT personer.EOF
if personer("init") = "" then
response.write "yes"
else
response.write "no"
end if

    If intCount = 1 Then
        farve = "#EEEEEE"
    intCount = 2
    Else
        farve = "#CCCCCC"
    intCount = 1
    End if
%>

<tr>
<td bgcolor="<% = farve%>"><% = personer.fields ("navn")%></td>
<td bgcolor="<% = farve%>"><% = personer.fields ("tlf")%></td>
<td bgcolor="<% = farve%>"><% = personer.fields ("init")%></td>
</tr>

<%
personer.movenext
wend
%>

</body>
</html>

//>Rune
Avatar billede wildthing Nybegynder
24. november 2003 - 13:03 #4
hey, sorry jeg præciserede nok ikke godt nok hvilken IF sætning jeg tester på (men jeg skrev det indirekte)
Det er If personer ..... der ikke virker..

wildthing
Avatar billede medions Nybegynder
24. november 2003 - 13:04 #5
Ahh så prøv:

if Len(personer("init")) = 1 then
response.write "yes"
else
response.write "no"
end if

//>Rune
Avatar billede ldanielsen Nybegynder
24. november 2003 - 13:04 #6
hvad er init for en datatype?

hvilken database er det?
Avatar billede eagleeye Praktikant
24. november 2003 - 13:07 #7
Hvis kolonnen init er tom vil den indeholde Null og ikke "" i et recordset, så prøv at lave din if om fra:

if personer("init") = "" then


Til dette:

if isNull(personer("init")) then
response.write "yes"
else
response.write "no"
end if
Avatar billede wildthing Nybegynder
24. november 2003 - 13:08 #8
Som jeg skrev i indledningen. Len() virker ikke på et tomt felt?!?
Avatar billede erikjacobsen Ekspert
24. november 2003 - 13:09 #9
et hack

  if ("" & personer("init")) = "" then

klarer både null og tomt felt
Avatar billede wildthing Nybegynder
24. november 2003 - 13:15 #10
Tak til erikjacobsen det skal nok virke. Points er gået til eagleeye for en fornem løsning.
tak til Medion for forsøget omend jeg synes du næste gnag skal bruge 10-15 sekunder mere på at læse opgaven;-)

Tak for hurtige svar
wildthing
Avatar billede erikjacobsen Ekspert
24. november 2003 - 13:19 #11
Eller - hvis man tager evt blanke med:

if trim("" & personer("init")) = "" then
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