Avatar billede djsteiner Nybegynder
29. juni 2011 - 22:58 Der er 51 kommentarer og
1 løsning

Fejl i if sætning

Hej jeg har brug for hjælp til en if or else sætning

Jeg vil gerne have at bruger skal få beskeden
"Du har ikke valgt at søge efter prøv igen" hvis man undlader at vægle noget! 



Jeg for denne fejl:

Der er en syntaksfejl
/Udregning ASP/case1.asp, line 13, column 19
If kat = "skat" and


i dette stykke kode:



strSearch = request.form("search")
kat = request.form("skat")
farve = request.form("farve")

If kat = "skat" and
farve = " farve"
then
Response.Redirect "index.asp"

Elseif kat = ""
Elseif farve = ""
then
Response.Write("Du har ikke valgt at søge efter prøv igen")

else


'%"&soeg&"%'
sql = "SELECT * FROM bruger WHERE gruppeid="&kat&" and haarid="&farve&" AND brugernavn LIKE '%"&strSearch&"%'"
set rs = Conn.Execute(sql)
%>

    <h2 class="title">Resultater</h2>
   
            <%do until rs.eof%>
                <a href="index.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />
               
            <%rs.movenext
            loop%>
<% end if %>
Avatar billede Slettet bruger
29. juni 2011 - 23:06 #1
Frem for
Elseif kat = ""
Elseif farve = ""


så prøv at skrive

Elseif kat = "" OR farve = ""


Desuden mener du nok null frem for "".
Avatar billede djsteiner Nybegynder
29. juni 2011 - 23:32 #2
det er  denne liner fejlen er:

If kat = "skat" or

jeg bruger dit forslag nu.


her koden som den ser ud nu:

strSearch = request.form("search")
kat = request.form("skat")
farve = request.form("farve")

If kat = "skat" or
farve = " farve"
then
Response.Redirect "index.asp"

Elseif kat = "" OR farve = ""


then
Response.Write("Du har ikke indtastet noget i søg feltet")

else


'%"&soeg&"%'
sql = "SELECT * FROM bruger WHERE gruppeid="&kat&" and haarid="&farve&" AND brugernavn LIKE '%"&strSearch&"%'"
set rs = Conn.Execute(sql)
%>

    <h2 class="title">Resultater</h2>
   
            <%do until rs.eof%>
                <a href="index.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />
               
            <%rs.movenext
            loop%>
<% end if %>
Avatar billede softspot Forsker
29. juni 2011 - 23:36 #3
Du må ikke bare lave linjeskift midt i en sætning i vbscript. Hvis du vil det skal du benytte linecontinuation (altså underscore) som vist i den rettede version af din kode nedenfor.

Desuden har steeven også fat i en pointe mht. din brug af elseif, hvor du skal benytte en and (eller or alt efter hvad du vil opnå) til at liste flere betingelser i en if/elseif-sætning.

Ydermere er det en rigtig god idé at ordne sin kode, så der indrykkes for hvert niveau koden indkapsles (f.eks. alt kode i en if-sætning indrykkes i fht. if-sætningen selv), som illustreret nedenfor...

strSearch = request.form("search")
kat = request.form("skat")
farve = request.form("farve")

If kat = "skat" and _
  farve = " farve" _
then
  Response.Redirect "index.asp"

Elseif kat = "" and _
  farve = "" _
then
  Response.Write("Du har ikke valgt at søge efter prøv igen")

else


  '%"&soeg&"%'
  sql = "SELECT * FROM bruger WHERE gruppeid="&kat&" and haarid="&farve&" AND brugernavn LIKE '%"&strSearch&"%'"
  set rs = Conn.Execute(sql)
%>

    <h2 class="title">Resultater</h2>
   
<%
  do until rs.eof
%>
                <a href="index.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />
               
<%
    rs.movenext
  loop
end if
%>
Avatar billede djsteiner Nybegynder
29. juni 2011 - 23:48 #4
Nu har jeg prøvet sådan her, men nu kommer den frem med
"Du har ikke indtastet noget i søg feltet" lige meget hvad man vægler.




strSearch = request.form("search")
kat = request.form("skat")
farve = request.form("farve")

If strSearch = "search" or kat = "skat" or farve = " farve" then
Response.Redirect "index.asp"

Elseif strSearch = "" or kat = "" or farve = "" then
Response.Write("Du har ikke indtastet noget i søg feltet")

else


'%"&soeg&"%'
sql = "SELECT * FROM bruger WHERE gruppeid="&kat&" and haarid="&farve&" AND brugernavn LIKE '%"&strSearch&"%'"
set rs = Conn.Execute(sql)
%>

    <h2 class="title">Resultater</h2>
   
            <%do until rs.eof%>
                <a href="index.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />
               
            <%rs.movenext
            loop%>
<% end if %>   

<%

case "showseachs"

id = request.QueryString("id")

sql = "SELECT * FROM bruger,haarfarve,grupper WHERE bruger.haarid=haarfarve.hid and bruger.gruppeid=grupper.gid and  ID="&id
set rs = Conn.Execute(sql)

%>

<%do until rs.eof %>

                <b>Brugernavn:</b>  <br /><%=rs("brugernavn")%><br /><br />
               
                <b>Hårfarve:</b> <br /><%=rs("farve")%><br /><br />
                <b>Landsdel:</b><br /><%=rs("gruppenavn")%><br /><br />
                <b>Profiltekst:</b><br /> <%=rs("bruger_tekst")%><br /><br />
        <%rs.movenext
    loop %>   


<%



end select

%>
Avatar billede djsteiner Nybegynder
30. juni 2011 - 00:06 #5
Skal den ikke også have to "end if" når man har if og Elseif  ?
Avatar billede softspot Forsker
30. juni 2011 - 09:15 #6
Nej, elseif giver ikke anledning til at tilføje en end if mere i slutningen af forgreningen.

Jeg noterer mig nogle ting i din kode:

1. Der er mellemrum foran farve, skal der være det?
If strSearch = "search" or kat = "skat" or farve = " farve" then

2. Er værdien af formularfeltet search rent faktisk "search", dvs. noget i stil med dette?
<input type=hidden name=search value=search>

3. Selvom indrykning er vigtigt for overskueligheden af din kode, så er sikring mod SQL-injection 100 gange vigtigere og din SQL-kode er ret åben for denne type angreb. Kig lidt på ADODB.Command (evt. søg lidt her på eksperten vedr. emnet - du får nok 1000 hits :-)). Til langt de fleste formål, er det ikke væsentlig mere besværligt at bruge Command-objektet og du er sikret mod denne slags angreb (så du kan bruge din energi på noget andet end at reparere dit site efter det er blevet hacket eller forklare dine kunder hvorfor deres oplysninger er blevet stjålet fra dit site ;-)).
Avatar billede Slettet bruger
30. juni 2011 - 09:31 #7
Strukturen i en IF-THEN-sætning:
IF ... AND ... OR ... THEN

    ....

    ELSEIF ... AND ... OR ... THEN

    ....

    ELSE

    ....

END IF

Og du kan have et uanet antal ELSEIF indenfor samme IF-THEN-kommando.
Avatar billede djsteiner Nybegynder
30. juni 2011 - 19:49 #8
Jeg har nu sat koden sådan her op:
Nu kommer der slet ikke noget når jeg søger er det så fordi at jeg nu har tilføjet

<input type="hidden" name="search" value="search">

at det ikke kommer nogle resultater ?

<form method="post" action="index.asp?mycase=searchres" name="se">
                <select name="skat" style="border:1px solid #000000;">
                    <option selected="selected" value="0">Vælg Landsdel</option>
                    <%do until rs.eof%>
                        <option value="<%=rs("gid")%>"><%=rs("gruppenavn")%></option>
                    <%rs.movenext
                    loop%>
                </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
               
                <select name="farve" style="border:1px solid #000000;">
                    <option selected="selected" value="0">Vælg Hårfarve</option>
                    <%do until rs1.eof%>
                        <option value="<%=rs1("hid")%>"><%=rs1("farve")%></option>
                    <%rs1.movenext
                    loop%>
                </select><br /> <br />
               
                <input type="hidden" name="search" value="search">

               
                <input type="submit" name="ok" value="Search" />
            </form>



strSearch = request.form("search")
kat = request.form("skat")
farve = request.form("farve")

If strSearch = "search" or kat = "skat" or farve = " farve" then

Response.Redirect "index.asp"

Elseif strSearch = "" or kat = "" or farve = "" then 
Response.Write("Du har ikke indtastet noget i søg feltet")

else


'%"&soeg&"%'
sql = "SELECT * FROM bruger WHERE gruppeid="&kat&" and haarid="&farve&" AND brugernavn LIKE '%"&strSearch&"%'"
set rs = Conn.Execute(sql)
%>

    <h2 class="title">Resultater</h2>
   
            <%do until rs.eof%>
                <a href="index.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />
               
            <%rs.movenext
            loop%>
<%
end if


%>
Avatar billede djsteiner Nybegynder
30. juni 2011 - 19:56 #9
Det skal lige siges at koden godt virkede før jeg jeg begyndte med if or else sætningen.


Jeg har brugt denne kode før som virker fint: 

strSearch = request.form("strsearch")

If strSearch = "strsearch" then
Response.Redirect "index.asp"
Elseif strSearch = "" then
Response.Write("Du har ikke indtastet noget i søg feltet")

else




Men det skal lige siges at her har jeg kun haft et søge felt unden sellect

Håber dette giver mening!
Avatar billede djsteiner Nybegynder
30. juni 2011 - 19:59 #10
Lige angående det med sikkerhed er bestem noget jeg skal have tjekket op på!

og tak for tippet!
Avatar billede djsteiner Nybegynder
30. juni 2011 - 20:17 #11
Noget anden er at at det skulle være muligt at når bruger KUN søger på en af de muligheder der så for brugen det resultat frem han søgte efter.



<form method="post" action="index.asp?mycase=searchres" name="se">
                <select name="skat" style="border:1px solid #000000;">
                    <option selected="selected" value="0">Vælg Landsdel</option>
                    <%do until rs.eof%>
                        <option value="<%=rs("gid")%>"><%=rs("gruppenavn")%></option>
                    <%rs.movenext
                    loop%>
                </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
               
                <select name="farve" style="border:1px solid #000000;">
                    <option selected="selected" value="0">Vælg Hårfarve</option>
                    <%do until rs1.eof%>
                        <option value="<%=rs1("hid")%>"><%=rs1("farve")%></option>
                    <%rs1.movenext
                    loop%>
                </select><br /> <br />
               
                <input type="hidden" name="search" value="search">

               
                <input type="submit" name="ok" value="Search" />
            </form>
Avatar billede softspot Forsker
30. juni 2011 - 20:55 #12
Hvordan så den oprindelige formular ud (den du havde inden du ændrede til hidden input)?

Det input-felt jeg nævnte var kun for at illustrere et princip og ikke fordi jeg mente du skulle ændre noget i det du havde.

Prøv i øvrigt gerne at forklare hvad det er du vil opnå mht. dine søgekriterier, dvs. hvad er regelsættet for søgeformularen udtrykt på almindelig dansk?
Avatar billede djsteiner Nybegynder
30. juni 2011 - 22:11 #13
Her har du den indelige formular :

    <form method="post" action="index.asp?mycase=searchres" name="search">
                <select name="skat" style="border:1px solid #000000;">
                    <option selected="selected" value="0">Vælg Landsdel</option>
                    <%do until rs.eof%>
                        <option value="<%=rs("gid")%>"><%=rs("gruppenavn")%></option>
                    <%rs.movenext
                    loop%>
                </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
               
                <select name="farve" style="border:1px solid #000000;">
                    <option selected="selected" value="0">Vælg Hårfarve</option>
                    <%do until rs1.eof%>
                        <option value="<%=rs1("hid")%>"><%=rs1("farve")%></option>
                    <%rs1.movenext
                    loop%>
                </select><br /> <br />       

               
                <input type="submit" name="ok" value="Search" />
            </form>
Avatar billede djsteiner Nybegynder
30. juni 2011 - 22:17 #14
Jeg prøver at hjælpe en med at lave en dating side.

Her skal man kunne søge på hvilket hårfarve, køn og aldre osv.

Her er det så at det skal være muligt kun at søge på en af

søgekriterierne det kunne være jeg vil finde en med blå øjne.

men det kan også godt være at jeg både vil søge en med blå øjne og som kommer fra fyn osv.

Håber dette giver bedre mening!
Avatar billede softspot Forsker
30. juni 2011 - 23:34 #15
I så fald vil du vel løbe igennem alle select-felterne i formularen og opbygge SQL-sætningen efterhånden som du finder ud af om kriterierne er angivet eller ej...

Jeg kunne forestille mig noget i stil med dette (du skal selv lige formulere logikken til at udskrive hver af de fundne brugere):

dim searchSpecified
dim searchCriteriaFields
dim fieldInfo
dim formFieldName
dim dbFieldName
dim fld
dim sql
dim params

' Benyttes til at indikere om der er specificeret nogle parametre
searchSpecified = false

' Benyttes til at beskrive hvilke felter i formularen der skal
' betragtes som kriteriefelter og hvilke felter de skal oversættes
' til i databasen. Disse oplysninger er adskilt med pipe (|).
' Kommer der flere kriterier i formularen, tilføjes disse blot
' i nedenstående liste på samme måde som de to eksisterende...

searchCriteriaFields = array("farve|haarid","skat|gruppeid")

sql = "SELECT * FROM bruger WHERE "

' Gennemløb formfelter i det postede og opbyg SQL-sætningen
' på grundlag af det, med formfeltets navn, matchede databasefelt.
' NB: Alle valgte kriterier skal matche for at brugeren medtages!

for each fld in searchCriteriaFields
  fieldInfo = split(searchCriteriaFields,"|")
  formFieldName = fieldInfo(0)
  dbFieldName = fieldInfo(1)
  if Request.Form(formFieldName) <> "0" then
    ' Hvis der er mindst én parameter i forvejen, skal der
    ' indsættes AND mellem denne og den forrige parameter
    ' eller skal searchSpecified sættes til at indikere at der nu
    ' er angivet mindst én parameter...

    if searchSpecified then
      sql = sql & "AND "
    else
      searchSpecified = true
    end if

    sql = sql & dbFieldName & "=? "
    addParam(params, Request.Form(formFieldName))
  end if
next

' Hvis der var mindst et kriterium specificeret, så akal
' opslaget i databasen udføres, eller ikke...

if searchSpecified then
  set cmd = createCommand(sql)
  set rs = cmd.Execute(, params)

  if not rs.eof then
    do while not rs.eof
      ' Udskriv de fundne brugere...

      rs.movenext
    loop
  else
    Response.Write "Der var ingen brugere som matchede dine kriterier"
  end if

  rs.Close
else
  Response.Write "Der var ikke specificeret nogle kriterier"
end if

Jeg har lavet et par funktioner til at understøtte opgaven lidt. Disse ser således ud:

' Tilføjer et element i parameterlisten (som er et array)
sub addParam(byref arr, byval val)
  redim preserve arr(ubound(arr) + 1)
  arr(ubound(arr)) = val
end sub

' Opretter og returnerer et commandobjekt som er forbundet til din connection
function createCommand(sql)
  dim cmd
  set cmd = Server.CreateObject("ADODB.Command")
  set cmd.ActiveConnection = DitConnectionObjekt
  cmd.CommandType = adCmdtext
  cmd.ComandText = sql
  set createCommand = cmd
end function

DitConnectionObjekt er det objekt der indeholder en åben forbindelse til din database (altså af typen ADODB.Connection, hvor Open-metoden er kaldt).

Husk i øvrigt at få lukket din forbindelse til databasen inden du redirecter til en anden side!
Avatar billede djsteiner Nybegynder
02. juli 2011 - 16:25 #16
jeg for denne fejl:

Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0414)
Der kan ikke bruges parenteser ved kald af en Sub
/Udregning ASP/untitled3.asp, line 48, column 45
addParam(params, Request.Form(formFieldName))


skal der ikke indsætte de rigtige navn fra formularen ?

searchCriteriaFields = array("farve|haarid","skat|gruppeid")

er det der mine form felter bliver kaldt ??

er dette en anden måde at at lave Request.Form("formFieldName")
Avatar billede djsteiner Nybegynder
02. juli 2011 - 16:27 #17
min form ser jo sådan her ud:

<form method="post" action="index.asp?mycase=searchres" name="search">
                <select name="skat" style="border:1px solid #000000;">
                    <option selected="selected" value="0">Vælg Landsdel</option>
                    <%do until rs.eof%>
                        <option value="<%=rs("gid")%>"><%=rs("gruppenavn")%></option>
                    <%rs.movenext
                    loop%>
                </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
               
                <select name="farve" style="border:1px solid #000000;">
                    <option selected="selected" value="0">Vælg Hårfarve</option>
                    <%do until rs1.eof%>
                        <option value="<%=rs1("hid")%>"><%=rs1("farve")%></option>
                    <%rs1.movenext
                    loop%>
                </select><br /> <br />       

               
                <input type="submit" name="ok" value="Search" />
            </form>
Avatar billede softspot Forsker
02. juli 2011 - 18:30 #18
Name-atributten på formelementet sendes ikke til serveren, så det kan du ikke bruge til noget.

Metoden jeg illustrerer, er en mere generisk metode til at gennemløb og oversætte feltværdier fra en formular til en SQL-sætning. Den er rar i forbindelse med søgning på et variabelt antal felter, da det kun vil være de felter (dropdown-bokse i denne version), hvor der er valgt en værdi, der medtages som kriterier i søgningen.
Alle de felter du ønsker skal medtages som søgekriterier vedligeholdes blot i searchCritereiaFields (med formfeltnavn og databasefeltnavn), mens resten af koden, som udgangspunkt, ikke skal røres.

Hvis du ikke umiddelbart kan gennemskue koden, vil jeg anbefale dig at dele den lidt op så du bla. kan få et indblik i hvordan form-POSTs fungerer. Du kan f.eks. prøve at køre denne kode og se hvad den udskriver, når du poster en formular til den:

for each fld in Request.Form
  Response.Write fld & " = " & Request.Form(fld)
next

På samme måde kan du prøve at køre løkken der itererer over array'et med formular- og databasefeltnavne:

searchCriteriaFields = array("farve|haarid","skat|gruppeid")

for each fld in searchCriteriaFields
  fieldInfo = split(searchCriteriaFields,"|")
  formFieldName = fieldInfo(0)
  dbFieldName = fieldInfo(1)

  Response.Write "formfelt: " & formFieldName
  Response.Write " => databasefelt: " & dbFieldName & "<br>"
next

Mht. fejlen du får, så er det fordi kaldet til addParam skal foranstilles med call, eller du skal fjerne paranteserne.
Avatar billede djsteiner Nybegynder
02. juli 2011 - 22:01 #19
Hej tak den hjælp jeg for af er dig er bare super mange tak! :)

Hvad gør denne del koden:
fieldInfo = split(searchCriteriaFields,"|")
Jeg for nemlig en fejl der.

Typer stemmer ikke overens
/Udregning ASP/untitled3.asp, line 33

som om at den at det den søger efter i databasen ikke findes eller navnet på database feltet ikke stemmer overens ??
Avatar billede djsteiner Nybegynder
02. juli 2011 - 23:35 #20
Jeg glemte lige at spørge om hvordan jeg overføre søgekriterierne  fra formulaen til sql strengen ?

Nomalt gør jeg jo sådan her:

kat = request.form("skat")
farve = request.form("farve")


sql = "SELECT * FROM bruger WHERE gruppeid="&kat&" and haarid="&farve&"

altså jeg overføre variablene.
Avatar billede softspot Forsker
02. juli 2011 - 23:37 #21
Ups! Jeg har lavet en fejl i den linje kode. Det er fld der skal splittes og ikke selve array'et - beklager:

fieldInfo = split(fld,"|")

fld indeholder, efter tur, de elementer (strenge) som ligger i searchCriteriaFields, dvs. først "farve|haarid" dernæst "skat|gruppeid". Strengen opdeles vha. split ved pipe-tegnet og bliver dermed til formularfeltnavnet hhv. databasefeltnavnet.
Avatar billede softspot Forsker
02. juli 2011 - 23:57 #22
Til #20:

Det sker dels i den løkke her:

for each fld in searchCriteriaFields
  fieldInfo = split(searchCriteriaFields,"|")
  formFieldName = fieldInfo(0)
  dbFieldName = fieldInfo(1)
  if Request.Form(formFieldName) <> "0" then
    ' Hvis der er mindst én parameter i forvejen, skal der
    ' indsættes AND mellem denne og den forrige parameter
    ' eller skal searchSpecified sættes til at indikere at der nu
    ' er angivet mindst én parameter...
    if searchSpecified then
      sql = sql & "AND "
    else
      searchSpecified = true
    end if

    sql = sql & dbFieldName & "=? "
    call addParam(params, Request.Form(formFieldName))
  end if
next

hvor where-delen af SQL-sætningen opbygges dynamisk samtidig med, at parameterværdierne opsamles i et array (params), som kan sendes med til Command-objektets Execute-metode, som illustreret i denne linje:

set rs = cmd.Execute(, params)

Hvis du vil se hvilken SQL-sætning der kommer ud af dit form-POST, kan du bare udskrive sql-sætningen efter den er blevet genereret, dvs. efter for-next løkken (og evt. afslutte siden, så du kan se hvad den skriver). Dette skal naturligvis fjernes når du er færdig med at undersøge og forstå koden ;-):

Response.Write sql
Response.End
Avatar billede djsteiner Nybegynder
03. juli 2011 - 00:48 #23
men så kommer fejlen her igen og jeg har prøver at fjene parenteserne,

call addParam(params, Request.Form(formFieldName))
Avatar billede djsteiner Nybegynder
03. juli 2011 - 00:58 #24
Men jeg er bare ikke med på hvordan min sql streng skal se ud nu ?
Avatar billede softspot Forsker
03. juli 2011 - 11:20 #25
I en erkendelse af at det er lidt svært at overskue hvad du har lavet og dermed hvilket grundlag du får fejlene på, så har jeg lavet et komplet eksempel der ved et postback generere den SQL der skal sendes til databasen (og viser den SQL-sætning for dig sammen med de parameterværdier der skal sendes med til databasen):

<%
Response.ContentType = "text/html"
Response.CharSet = "UTF-8"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Demo af dynamisk SQL-søgningsopbygning</title>
</head>
<body>
<%
if request.servervariables("request_method") = "POST" then
  dim searchSpecified
  dim searchCriteriaFields
  dim fieldInfo
  dim formFieldName
  dim dbFieldName
  dim fld
  dim sql
  dim params
 
  params = array()
 
  ' Benyttes til at indikere om der er specificeret nogle parametre
  searchSpecified = false

  ' Benyttes til at beskrive hvilke felter i formularen der skal
  ' betragtes som kriteriefelter og hvilke felter de skal oversættes
  ' til i databasen. Disse oplysninger er adskilt med pipe (|).
  ' Kommer der flere kriterier i formularen, tilføjes disse blot
  ' i nedenstående liste på samme måde som de to eksisterende...
  searchCriteriaFields = array("farve|haarid","skat|gruppeid")

  sql = "SELECT * FROM bruger WHERE "

  ' Gennemløb formfelter i det postede og opbyg SQL-sætningen
  ' på grundlag af det, med formfeltets navn, matchede databasefelt.
  ' NB: Alle valgte kriterier skal matche for at brugeren medtages!
  for each fld in searchCriteriaFields
    fieldInfo = split(fld,"|")
    formFieldName = fieldInfo(0)
    dbFieldName = fieldInfo(1)
    if Request.Form(formFieldName) & "" <> "" then
      ' Hvis der er mindst én parameter i forvejen, skal der
      ' indsættes AND mellem denne og den forrige parameter
      ' eller skal searchSpecified sættes til at indikere at der nu
      ' er angivet mindst én parameter...
      if searchSpecified then
        sql = sql & "AND "
      else
        searchSpecified = true
      end if

      sql = sql & dbFieldName & "=? "
      call addParam(params, Request.Form(formFieldName))
    end if
  next

  ' Hvis der var mindst et kriterium specificeret, så akal
  ' opslaget i databasen udføres, eller ikke...
  if searchSpecified then
    Response.Write "SQL:<br>" & sql & "<br>"
    Response.Write "Params:<br>" & join(params,",") & "<br>"
'    set cmd = createCommand(sql)
'    set rs = cmd.Execute(, params)
'
'    if not rs.eof then
'      do while not rs.eof
'        ' Udskriv de fundne brugere...
'
'        rs.movenext
'      loop
'    else
'      Response.Write "Der var ingen brugere som matchede dine kriterier"
'    end if
'
'    rs.Close
  else
    Response.Write "Der var ikke specificeret nogle kriterier"
  end if
  Response.Write "<br><br>"
end if
%>
  <form method="post" action="?mycase=searchres">
    <select name="skat" style="border:1px solid #000000;">
      <option selected="selected" value="">Vælg Landsdel</option>
      <option value="1">Nord</option>
      <option value="2">Øst</option>
      <option value="3">Syd</option>
      <option value="4">Vest</option>
    </select>        
   
    <select name="farve" style="border:1px solid #000000;">
      <option selected="selected" value="">Vælg Hårfarve</option>
      <option value="1">Blond</option>
      <option value="2">Brun</option>
      <option value="3">Sort</option>
    </select><br /> <br />       

    <input type="submit" name="ok" value="Search" />
  </form>
</body>
</html>
<%
' Tilføjer et element i parameterlisten (som er et array)
sub addParam(byref arr, byval val)
  redim preserve arr(ubound(arr) + 1)
  arr(ubound(arr)) = val
end sub

' Opretter og returnerer et commandobjekt som er forbundet til din connection
function createCommand(sql)
  dim cmd
  set cmd = Server.CreateObject("ADODB.Command")
  set cmd.ActiveConnection = DitConnectionObjekt
  cmd.CommandType = adCmdtext
  cmd.ComandText = sql
  set createCommand = cmd
end function
%>

Som du kan se, har jeg set bort fra selve opslaget i databasen (idet koden til dette er kommenteret ud), da jeg går ud fra du har styr på at iterere over rækkerne i resultatet og udskrive dem som du ønsker. Desuden har jeg lavet formular og postback-kode i samme ASP-fil for nemhedens skyld. Det kan godt være du har sat det anderledes sammen, men det ændrer ikke noget på den kode der er interessant, nemlig det der genererer SQL-sætningen og opsamler tilhørende parameterværdier.

Tag nu dette eksempel for hvad det er, nemlig en demo af teknikken og ikke et konkret løsningsforslag til dit specifikke problem. Du skal selv overføre dette til din egen løsning, når du har forstået de enkelte dele af koden.
Avatar billede djsteiner Nybegynder
03. juli 2011 - 13:00 #26
nu har jeg lige prøvet at tilføje det jeg vil have udskrevet i den kode som du lige har lavet:

er det helt forket tænk eller ??

jeg for nemlig denne fejl så:


Et objekt er obligatorisk: 'cmd.ActiveConnection'
/Udregning ASP/untitled4.asp, line 117


som er denne liner:

set cmd.ActiveConnection = DitConnectionObjekt





' Hvis der var mindst et kriterium specificeret, så akal
  ' opslaget i databasen udføres, eller ikke...
  if searchSpecified then
    Response.Write "SQL:<br>" & sql & "<br>"
    Response.Write "Params:<br>" & join(params,",") & "<br>"
    set cmd = createCommand(sql)
  set rs = cmd.Execute(, params)

if not rs.eof then
    do while not rs.eof%>
      <a href="index.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />

      <%rs.movenext
    loop
    else
      Response.Write "Der var ingen brugere som matchede dine kriterier"
  end if

  rs.Close
  else
    Response.Write "Der var ikke specificeret nogle kriterier"
  end if
  Response.Write "<br><br>"
end if
Avatar billede softspot Forsker
03. juli 2011 - 13:16 #27
DitConnectionObjekt er (som navnet indikerer) en variabel der indeholder forbindelsen til din database, så den kode der opretter objektet og forbindelsen til databasen skal du også indsætte. Du kan blot udskifte variablen DitConnectionObjekt med navnet på din egen connection variabel.
Avatar billede djsteiner Nybegynder
03. juli 2011 - 16:30 #28
Nomalt når jeg laver en forbindels til min database så gør jeg sådan her:

<%
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open " DRIVER=MySQL ODBC 3.51 Driver; SERVER=localhost; UID=root; pwd=1234; DATABASE=web103303;"

Session.lcid = 1030
%>

denne kode includere  jeg så.

<!-- #include file="dbconnect.asp" -->
Avatar billede djsteiner Nybegynder
03. juli 2011 - 17:01 #29
og selve sql strengen laver jeg sådan her:

sql = "SELECT * FROM bruger"
set rs = Conn.Execute(sql)
Avatar billede djsteiner Nybegynder
03. juli 2011 - 17:03 #30
Forsat #29

hvis jeg laver det på den måde i din kode

Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: ''


Hvordan kan det være ?
Avatar billede softspot Forsker
03. juli 2011 - 19:50 #31
Det er fordi du skal udskifte DitConnectionObjekt med Conn... 8o)
Avatar billede djsteiner Nybegynder
05. juli 2011 - 18:02 #32
Hej igen :)


Jeg har nu lige prøve at lege lidt med if or else bare for at øve og få en bedre forståelse for det!

Jeg har uploadet det her måske det giver bedre mening så.

http://www.2b2.dk/search2.asp

Det der problemet er at man ikke kan søge på begge søgekriterier
sammentideligt.Men man kan godt søge enkeltvis.

Dette skulle gerne gøre at den vægler at bruge den sql sætning hvor den søger på begge søgekriterier:

elseif kat and farve then


Så dette er bare et eks. koden kommer her:

search = request.form("search")
kat = request.form("skat")
farve = request.form("farve")


if kat then



'%"&soeg&"%'
sql = "SELECT * FROM bruger WHERE gruppeid="&kat&" AND brugernavn LIKE '%"&search&"%'"


set rs = Conn.Execute(sql)


%>

<%do until rs.eof%>
                <a href="search2.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />
               
            <%rs.movenext
            loop



elseif farve then



'%"&soeg&"%'
sql = "SELECT * FROM bruger WHERE haarid="&farve&" AND brugernavn LIKE '%"&search&"%'"


set rs = Conn.Execute(sql)


%>

<%do until rs.eof%>
                <a href="search2.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />
               
            <%rs.movenext
            loop

elseif kat and farve then

'%"&soeg&"%'
sql = "SELECT * FROM bruger WHERE gruppeid="&kat&" and haarid="&farve&"  AND brugernavn LIKE '%"&search&"%'"


set rs = Conn.Execute(sql)


%>

<%do until rs.eof%>
                <a href="search2.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />
               
            <%rs.movenext
            loop

end if
%>
Avatar billede djsteiner Nybegynder
05. juli 2011 - 18:07 #33
altså det jeg prøver på er at når man skriver:

if kat then

skal en bruge første sql streng

elseif farve then

skal den bruge anden sql streng

elseif kat and farve then

her skal den bruge den sidste sql streng

Håber dette giver mening!


Jeg har også prøvet at bruge else til sidst.
Avatar billede softspot Forsker
05. juli 2011 - 18:32 #34
Det er netop det den kode jeg har lavet til dig gør, så jeg forstår ikke helt hvad problemet er...?

Men hvis du skal have dit eget til at fungere, så er du nød til at tjekke for den mest specifikke betingelse først (dvs. den hvor begge søgekriterierne skal være udfyld), elles vil if-sætningen gå ind i den første betingelse før den "rammer" den betingelse, hvor der tjekkes for om begge er valgt.

Med andre ord, så skal if kat and farve then flyttes op, så den står først i if-strukturen.
Avatar billede djsteiner Nybegynder
05. juli 2011 - 18:50 #35
Jeg er godt klar over din kode virker men jeg kan ikke få indført sql strengen osv.

Forstår ikke din koden helt.

Men jeg prøver lige min egen for få en forståelse på  og else  strukturen.
Avatar billede djsteiner Nybegynder
05. juli 2011 - 19:09 #36
Men i forhold til din kode hvor tilsluttede jeg mi database her ?

function createCommand(sql)
  dim cmd
  set cmd = Server.CreateObject("ADODB.Command")
  set cmd.ActiveConnection = DitConnectionObjekt
  cmd.CommandType = adCmdtext
  cmd.ComandText = sql
  set createCommand = cmd
end function

Min forbindelse til db ser jo sådan ud:

set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open " DRIVER=MySQL ODBC 3.51 Driver; SERVER=localhost; UID=root; pwd=1234; DATABASE=web103303;"

Session.lcid = 1030

er det noget i denne stil ?



function createCommand(sql)
  dim cmd
  set cmd = Server.CreateObject("ADODB.Command")
  set cmd.ActiveConnection = Conn.Open " DRIVER=MySQL ODBC 3.51 Driver; SERVER=localhost; UID=root; pwd=1234; DATABASE=web103303;"
  cmd.CommandType = adCmdtext
  cmd.ComandText = sql
  set createCommand = cmd
end function



eller ?
Avatar billede softspot Forsker
05. juli 2011 - 19:59 #37
Således:

function createCommand(sql)
  dim cmd
  set cmd = Server.CreateObject("ADODB.Command")
  set cmd.ActiveConnection = Conn
  cmd.CommandType = adCmdtext
  cmd.ComandText = sql
  set createCommand = cmd
end function

Fordi Conn er et objekt der indeholde ren åben forbindelse til datbasen og Command-objektet dermed bare skal kobles på den forbindelse for at fungere.

Objekter tildeles med Set-nøgleordet i VBScript.
Avatar billede djsteiner Nybegynder
05. juli 2011 - 21:18 #38
den kommer med denne fejl nu:

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'cmd.ActiveConnection'
/Udregning ASP/untitled4.asp, line 119
Avatar billede djsteiner Nybegynder
05. juli 2011 - 21:21 #39
det skal lige siges at jeg har tilføjet dette til koden:

sådan at den nu skulle udskrive fra min DB

  ' Hvis der var mindst et kriterium specificeret, så akal
  ' opslaget i databasen udføres, eller ikke...
  if searchSpecified then
    Response.Write "SQL:<br>" & sql & "<br>"
    Response.Write "Params:<br>" & join(params,",") & "<br>"
    'set cmd = createCommand(sql)
    set rs = cmd.Execute(, params)

'    if not rs.eof then
      do while not rs.eof%>
<a href="index.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />


        <%rs.movenext
      loop
  else
      Response.Write "Der var ingen brugere som matchede dine kriterier"
    end if

    rs.Close
  else
    Response.Write "Der var ikke specificeret nogle kriterier"
  end if
  Response.Write "<br><br>"
Avatar billede softspot Forsker
05. juli 2011 - 22:23 #40
Mit gæt er at du ikke har oprettet objektet med forbindelsen til din database på det tidspunkt hvor du kalder CreateCommand-funkitonen, hvilket så vil give den fejl du nævner.

Bare for at være helt sikker på at du ikke forventer at koden omkring createCommand-kaldet fungerer, nævner jeg at du ikke bare kan udkommentere linjen med set cmd = CreateCommand uden at udkommentere resten af koden der arbejder med det objekt der forventes at komme ud af kaldet. Næste linje vil fejle, hvis kaldet til CreateCommand ikke udføres.

Jeg tror faktisk det ville være lettere at komme i mål, hvis du viste hele sidens kode og lod mig rette det til så det fungerer, for det virker ikke som om vi snakker helt samme "sprog" :-)
Avatar billede djsteiner Nybegynder
05. juli 2011 - 22:54 #41
her har du hele koden:

<%
Response.ContentType = "text/html"
Response.CharSet = "UTF-8"
<!-- #include file="dbconnect.asp" -->
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ (...)

<html xmlns="http://www.w3.org/ (...)
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Demo af dynamisk SQL-søgningsopbygning</title>
</head>
<body>
<%
if request.servervariables("request_method") = "POST" then
  dim searchSpecified
  dim searchCriteriaFields
  dim fieldInfo
  dim formFieldName
  dim dbFieldName
  dim fld
  dim sql
  dim params
 
  params = array()
 
  ' Benyttes til at indikere om der er specificeret nogle parametre
  searchSpecified = false

  ' Benyttes til at beskrive hvilke felter i formularen der skal
  ' betragtes som kriteriefelter og hvilke felter de skal oversættes
  ' til i databasen. Disse oplysninger er adskilt med pipe (|).
  ' Kommer der flere kriterier i formularen, tilføjes disse blot
  ' i nedenstående liste på samme måde som de to eksisterende...
  searchCriteriaFields = array("farve|haarid","skat|gruppeid")

  sql = "SELECT * FROM bruger WHERE "

  ' Gennemløb formfelter i det postede og opbyg SQL-sætningen
  ' på grundlag af det, med formfeltets navn, matchede databasefelt.
  ' NB: Alle valgte kriterier skal matche for at brugeren medtages!
  for each fld in searchCriteriaFields
    fieldInfo = split(fld,"|")
    formFieldName = fieldInfo(0)
    dbFieldName = fieldInfo(1)
    if Request.Form(formFieldName) & "" <> "" then
      ' Hvis der er mindst én parameter i forvejen, skal der
      ' indsættes AND mellem denne og den forrige parameter
      ' eller skal searchSpecified sættes til at indikere at der nu
      ' er angivet mindst én parameter...
      if searchSpecified then
        sql = sql & "AND "
      else
        searchSpecified = true
      end if

      sql = sql & dbFieldName & "=? "
      call addParam(params, Request.Form(formFieldName))
    end if
  next

  ' Hvis der var mindst et kriterium specificeret, så akal
  ' opslaget i databasen udføres, eller ikke...
  if searchSpecified then
    Response.Write "SQL:<br>" & sql & "<br>"
    Response.Write "Params:<br>" & join(params,",") & "<br>"
    'set cmd = createCommand(sql)
    set rs = cmd.Execute(, params)

'    if not rs.eof then
      do while not rs.eof%>
<a href="index.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />


        <%rs.movenext
      loop
  else
      Response.Write "Der var ingen brugere som matchede dine kriterier"
    end if

    rs.Close
  else
    Response.Write "Der var ikke specificeret nogle kriterier"
  end if
  Response.Write "<br><br>"

%>
  <form method="post" action="?mycase=searchres">
    <select name="skat" style="border:1px solid #000000;">
      <option selected="selected" value="">Vælg Landsdel</option>
      <option value="1">Nord</option>
      <option value="2">Øst</option>
      <option value="3">Syd</option>
      <option value="4">Vest</option>
    </select>       
   
    <select name="farve" style="border:1px solid #000000;">
      <option selected="selected" value="">Vælg Hårfarve</option>
      <option value="1">Blond</option>
      <option value="2">Brun</option>
      <option value="3">Sort</option>
    </select><br /> <br />       

    <input type="submit" name="ok" value="Search" />
  </form>
</body>
</html>
<%
' Tilføjer et element i parameterlisten (som er et array)
sub addParam(byref arr, byval val)
  redim preserve arr(ubound(arr) + 1)
  arr(ubound(arr)) = val
end sub

' Opretter og returnerer et commandobjekt som er forbundet til din connection
function createCommand(sql)
  dim cmd
  set cmd = Server.CreateObject("ADODB.Command")
  set cmd.ActiveConnection = Conn
  cmd.CommandType = adCmdtext
  cmd.ComandText = sql
  set createCommand = cmd
end function
%>
Avatar billede djsteiner Nybegynder
05. juli 2011 - 22:56 #42
Min database forbindelse:

<%
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open " DRIVER=MySQL ODBC 3.51 Driver; SERVER=localhost; UID=root; pwd=1234; DATABASE=web103303;"

Session.lcid = 1030
%>
Avatar billede softspot Forsker
05. juli 2011 - 23:47 #43
Din includefil bliver ikke inkluderet, fordi du har lagt include-linjen inde i ASP-sektionen (dvs. indenfor <% og %>), hvor den skal ligge udenfor. Derfor vil jeg mene at nedenstående burde fungere. Jeg har bagt søgningen på brugernavnet ind i formularen og den tilhørende SQL...

<%
Response.ContentType = "text/html"
Response.CharSet = "UTF-8"
%>
<!-- #include file="dbconnect.asp" -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ (...)

<html xmlns="http://www.w3.org/ (...)
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Demo af dynamisk SQL-søgningsopbygning</title>
</head>
<body>
<%
if request.servervariables("request_method") = "POST" then
  dim searchSpecified
  dim searchCriteriaFields
  dim fieldInfo
  dim formFieldName
  dim dbFieldName
  dim fld
  dim sql
  dim params
  dim search

  search = Request.Form("search") & ""

  ' Benyttes til at indikere om der er specificeret nogle parametre
  searchSpecified = false

  ' Benyttes til at beskrive hvilke felter i formularen der skal
  ' betragtes som kriteriefelter og hvilke felter de skal oversættes
  ' til i databasen. Disse oplysninger er adskilt med pipe (|).
  ' Kommer der flere kriterier i formularen, tilføjes disse blot
  ' i nedenstående liste på samme måde som de to eksisterende...
  searchCriteriaFields = array("farve|haarid","skat|gruppeid")

  params = array()

  sql = "SELECT * FROM bruger WHERE "

  if search <> "" then
    sql = sql & "brugernavn LIKE '%'+?+'%' "
    call addParam(params, search)
    searchSpecified = true
  end if
 
 
  ' Gennemløb formfelter i det postede og opbyg SQL-sætningen
  ' på grundlag af det, med formfeltets navn, matchede databasefelt.
  ' NB: Alle valgte kriterier skal matche for at brugeren medtages!
  for each fld in searchCriteriaFields
    fieldInfo = split(fld,"|")
    formFieldName = fieldInfo(0)
    dbFieldName = fieldInfo(1)
    if Request.Form(formFieldName) & "" <> "" then
      ' Hvis der er mindst én parameter i forvejen, skal der
      ' indsættes AND mellem denne og den forrige parameter
      ' eller skal searchSpecified sættes til at indikere at der nu
      ' er angivet mindst én parameter...
      if searchSpecified then
        sql = sql & "AND "
      else
        searchSpecified = true
      end if

      sql = sql & dbFieldName & "=? "
      call addParam(params, Request.Form(formFieldName))
    end if
  next

  ' Hvis der var mindst et kriterium specificeret, så akal
  ' opslaget i databasen udføres, eller ikke...
  if searchSpecified then
    Response.Write "SQL:<br>" & sql & "<br>"
    Response.Write "Params:<br>" & join(params,",") & "<br>"
    set cmd = createCommand(sql)
    set rs = cmd.Execute(, params)

    if not rs.eof then
      do while not rs.eof%>
<a href="index.asp?mycase=showseachs&id=<%=rs("ID")%>"><%=rs("brugernavn")%></a><br /><br />


        <%rs.movenext
      loop
    else
      Response.Write "Der var ingen brugere som matchede dine kriterier"
    end if

    rs.Close
  else
    Response.Write "Der var ikke specificeret nogle kriterier"
  end if
  Response.Write "<br><br>"
else
%>
  <form method="post" action="?mycase=searchres">
    <input type="text" name="search"><br>
    <select name="skat" style="border:1px solid #000000;">
      <option selected="selected" value="">Vælg Landsdel</option>
      <option value="1">Nord</option>
      <option value="2">Øst</option>
      <option value="3">Syd</option>
      <option value="4">Vest</option>
    </select><br>   
   
    <select name="farve" style="border:1px solid #000000;">
      <option selected="selected" value="">Vælg Hårfarve</option>
      <option value="1">Blond</option>
      <option value="2">Brun</option>
      <option value="3">Sort</option>
    </select><br /> <br />       

    <input type="submit" name="ok" value="Search" />
  </form>
<%
end if
%>
</body>
</html>
<%
' Tilføjer et element i parameterlisten (som er et array)
sub addParam(byref arr, byval val)
  redim preserve arr(ubound(arr) + 1)
  arr(ubound(arr)) = val
end sub

' Opretter og returnerer et commandobjekt som er forbundet til din connection
function createCommand(sql)
  dim cmd
  set cmd = Server.CreateObject("ADODB.Command")
  set cmd.ActiveConnection = Conn
  cmd.CommandType = adCmdtext
  cmd.ComandText = sql
  set createCommand = cmd
end function
%>
Avatar billede djsteiner Nybegynder
06. juli 2011 - 00:04 #44
Bu kommer denne fejl:

Fejltype:
ADODB.Command (0x800A0BB9)
Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.
/Udregning ASP/untitled4.asp, line 134


som er denne liner:

cmd.CommandType = adCmdtext



som er en del af denne function:


' Opretter og returnerer et commandobjekt som er forbundet til din connection
function createCommand(sql)
  dim cmd
  set cmd = Server.CreateObject("ADODB.Command")
  set cmd.ActiveConnection = Conn
  cmd.CommandType = adCmdtext
  cmd.ComandText = sql
  set createCommand = cmd
end function
%>
Avatar billede softspot Forsker
06. juli 2011 - 00:22 #45
Det er fordi der mangler en reference til konstanten adCmdText.

For et Quick-Fix kan du udskifte linjen

cmd.CommandType = adCmdtext

med

cmd.CommandType = 1
Avatar billede djsteiner Nybegynder
06. juli 2011 - 00:37 #46
så kommer denne fejl

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01B6)
Objektet understøtter ikke denne egenskab eller metode: 'cmd.ComandText'
/Udregning ASP/untitled4.asp, line 135


det er denne liner:

cmd.ComandText = sql

samme function
Avatar billede softspot Forsker
06. juli 2011 - 00:43 #47
Prøv med denne linje (stavefejl):

cmd.CommandText = sql
Avatar billede djsteiner Nybegynder
06. juli 2011 - 18:17 #48
Ja det virker nu :)

Mange tak for din store tålmodighed!

så kan jeg se hvis jeg vil tilføjer flere kriterier i formularen, så indsætter jeg dem bare her:

  searchCriteriaFields = array("farve|haarid","skat|gruppeid")
Avatar billede softspot Forsker
06. juli 2011 - 18:27 #49
Ja, det er korrekt at du blot skal udvide arrayet med searchCriteriaFields.

Du er nok ikke opmærksom på det, men du har givet steeven point og ikke mig... ;-)
Avatar billede djsteiner Nybegynder
06. juli 2011 - 19:08 #50
sorry det er jeg ked af hvad gør jeg nu ?

Jeg kan oprette et nyt spørgsmål og give dg point ?
Avatar billede softspot Forsker
06. juli 2011 - 19:36 #51
Næh, det går nok :-)
Avatar billede djsteiner Nybegynder
06. juli 2011 - 19:42 #52
Okay super! :)

Endnu en gang mange tak! :)
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