Avatar billede cdc Novice
21. maj 2005 - 16:23 Der er 15 kommentarer og
1 løsning

Scriptet vil ikke gemme i DB

Spm. har tidligere været oppe; http://www.eksperten.dk/spm/617070 men har endnu ikke fået en løsning på det, så prøver med et nyt, men flere points.

Hele scriptet ser således ud, og mit problem er når der er registreringer i db som er dubletter, denne vil jeg have fjernet, og som jeg kan se det er det denne linie:

Else
    Response.Redirect "admin.asp?action=inne&catId=" & Kat & "&mess=exist&name=" & RS("kat")
  End If

men når jeg gør det smider den intet i db, og men redirecter kun

<---- SCRIPTET ER HER UNDER ---->

<!--#Include file="inc/settings.asp"-->

<%If Session("LinkAdminIn") <> Secure Then
  Response.Redirect "admin.asp"
Else%>

<%If Request.QueryString("do") = "addlink" Then
  Namn = Fixa(Request.Form("namn"))
  Url  = Request.Form("url")
  Info = Fixa(Request.Form("info"))
  Kat  = Request.Form("kat")
  Resultat  = Request.Form("resultat")
  Gruppe  = Request.Form("gruppe")
  Hcp  = Request.Form("hcp")

  Set RS=Conn.Execute("Select * From url Where url='" & Url & "'")
  If RS.EOF Then
Conn.Execute("Insert Into url(namn,url,gruppe,hcp,resultat,info,kat) Values('" & Namn & "','" & Url & "','" & Gruppe & "','" & Hcp & "','" & Info & "','" & Resultat & "'," & Kat & ")")
    Response.Redirect "admin.asp?action=inne&catId=" & Kat
  Else
    Response.Redirect "admin.asp?action=inne&catId=" & Kat & "&mess=exist&name=" & RS("kat")
  End If

ElseIf Request.QueryString("do") = "addkat" Then
  Kat      = Fixa(Request.Form("namn"))
  Sub_kat  = Request.Form("kat")

  Set RS=Conn.Execute("Select * From kat Where kat='" & kat & "'")
  If RS.EOF Then
    Conn.Execute("Insert Into kat(kat,sub_kat) Values('" & Kat & "'," & Sub_kat & ")")
    If Sub_kat <> 0 Then
      Response.Redirect "admin.asp?action=inne&catId=" & Sub_kat
    Else
      Response.Redirect "admin.asp?action=inne"
    End If
  Else
    If Sub_kat <> 0 Then
      Response.Redirect "admin.asp?action=inne&catId=" & Sub_kat & "&mess=exist&name=" & RS("kat")
    Else
      Response.Redirect "admin.asp?action=inne&mess=exist&name=" & RS("kat")
    End If
  End If

ElseIf Request.QueryString("do") = "changelink" Then
  Namn = Fixa(Request.Form("namn"))
  Url  = Request.Form("url")
  Info = Fixa(Request.Form("info"))
  Kat  = Request.Form("kat")
  Resultat  = Request.Form("resultat")
  Gruppe  = Request.Form("gruppe")
  Hcp  = Request.Form("hcp")

Conn.Execute("Update url Set namn='" & Namn & "',url='" & Url & "',info='" & Info & "',gruppe='" & Gruppe & "',hcp='" & Hcp & "',resultat='" & Resultat & "',kat=" & Kat & " Where id=" & Request.QueryString("id"))
  Response.Redirect "admin.asp?action=inne&catId=" & Request.Form("kat")

ElseIf Request.QueryString("do") = "changekat" Then
  Kat      = Fixa(Request.Form("namn"))
  Sub_kat  = Request.Form("kat")

  Conn.Execute("Update kat Set kat='" & Kat & "',sub_kat='" & Sub_kat & "' Where id=" & Request.QueryString("id"))
  If Sub_kat <> 0 Then
    Response.Redirect "admin.asp?action=inne&catId=" & Sub_kat
  Else
    Response.Redirect "admin.asp?action=inne"
  End If

End If

Conn.Close
Set Conn=Nothing

End If%>
Avatar billede dawin_dk Nybegynder
21. maj 2005 - 17:48 #1
du burde hellere holde styr på at ikke oprette dubletter fremfor at få dem fjernet. du kan også sætte databasen op til ikke at godkende dem .. på den måde vil de aldrig opstå. dit script skal så lige tage højde for den fejl der kommer når du prøver.

men en anden ting og sikkert grunden til du ik har fåe thjælp på dit andet spørgsmål du henviser til. folk klikker ind på spørgsmålet, læser alt teksten som bare er et langt paste og orker ikke at læse det hele igennem. nøjes med at paste spørgsmål og forklare og måske lige de få liniers kode der er relevant.

/david
Avatar billede cdc Novice
22. maj 2005 - 10:55 #2
Problemet er at jeg har fundet dette skript, og prøver at lave det om til noget andet. Og derfor skal det ikke tage højde for dubletter.

Den tager dubletter over en bred kam, og her er den lavet som en startliste, og på forskellige dage. Men figurerer en person i db fra en tidligere start, afviser scriptet personen da han ligger i db.

Jeg kunne så bare slette dem, men jeg bruger de personer der hr startet i db til resultat også, så de skal være der....

//cdc
Avatar billede cdc Novice
22. maj 2005 - 10:58 #3
og som jeg skriver i mit spm. er det nok denne der er gal:

Else
    Response.Redirect "admin.asp?action=inne&catId=" & Kat & "&mess=exist&name=" & RS("kat")
  End If

men da jeg ikke er en asp haj, har jeg pastet alt ind.
Avatar billede dawin_dk Nybegynder
22. maj 2005 - 11:25 #4
scriptet er ikke særligt avanceret.. hvad er det du prøver at få det til ... og skal bruge det til .... måske nemmere jeg bare laver et script til dig som kan det, så har du noget der virker :)
Avatar billede cdc Novice
22. maj 2005 - 12:14 #5
Det er når jeg laver et addlink den går galt, at den ikke smider den ned i db.

Scriptet går ud på at jeg kan lave kategorier (startdatoer i mit tilfælde.

Under hver kategori som jeg vil bruge det smides så personer ind i en "startlisten".

Dvs. de bliver lagt ind under den respektive startdato.
Men hvis de var med i en start i sidste uge, vil den ikke smide personen ind, da det bliver en dublet....Og det er det jeg vil have fjernet.

Selve scriptet som jeg har pastet ind i spørgsmålet er min save.asp Denne bruges til alt som at lave/rette nye kategorier osv
Avatar billede cdc Novice
22. maj 2005 - 12:25 #6
Du kan se scriptet her, dog ikke lavet om til det jeg skal bruge det til.

http://www.hillerodgolf.dk/links/
admin delen er her: http://www.hillerodgolf.dk/links/admin.asp brug admin & admin for at logge ind.

i de to kategorier jeg har lavet....kan man ikke lave den samme link, da dette er et linkarkiv orginalt...
Avatar billede thesurfer Nybegynder
23. maj 2005 - 18:16 #7
Jeg har lige læst dit spørgsmål..

Hvis urlen allerede findes, skal den jo ikke indsætte samme url igen.. den skal jo opdatere informationerne..

Ret følgende kode:

  Else
    Response.Redirect "admin.asp?action=inne&catId=" & Kat & "&mess=exist&name=" & RS("kat")
  End If

tilfølgende kode:


  Else
    Conn.Execute("update url set namn = '" & Namn & "', url = '" & Url & "', gruppe = '" & Gruppe & "', hcp = '" & Hpc & "', resultat = '" & Resultat & "', info = '" & Info & "', kat = '" & Kat & "'")

        ' Hvis du vil, kan du også redirecte bagefter.. fjern apostroffen:
        ' Response.Redirect "admin.asp?action=inne&catId=" & Kat & "&mess=exist&name=" & RS("kat")
  End If




Conn.Execute("update url set namn = '" & Namn & "', url = '" & Url & "', gruppe = '" & Gruppe & "', hcp = '" & Hpc & "', resultat = '" & Resultat & "', info = '" & Info & "', kat = '" & Kat & "'")


Hvis nogen af felterne er af typen TAL, i stedet for TEKST, skal der *ikke* være apostroffer uden om værdien..
Avatar billede thesurfer Nybegynder
23. maj 2005 - 18:19 #8
Den nedereste del af koden (Conn.Execute...) lige over "Hvis nogen..." skal ikke med :-)

Koden skal bare se sådan ud:

  Else
    Conn.Execute("update url set namn = '" & Namn & "', url = '" & Url & "', gruppe = '" & Gruppe & "', hcp = '" & Hpc & "', resultat = '" & Resultat & "', info = '" & Info & "', kat = '" & Kat & "'")

        ' Hvis du vil, kan du også redirecte bagefter.. fjern apostroffen:
        ' Response.Redirect "admin.asp?action=inne&catId=" & Kat & "&mess=exist&name=" & RS("kat")
  End If
Avatar billede cdc Novice
24. maj 2005 - 09:43 #9
thesurfer--> Er du sikker på at det er i UPDATE delen man skal lave det om og ikke i ADDLINK ?

Jeg bruger den som startliste og resultatliste i steden for et linkarkiv.
Startlisten ser således ud: http://www.hillerodgolf.dk/newsite/test/start_liste_02.asp?catId=2

Når jeg så laver en ny start i næste uge, kan jeg ikke smide  en spiller in i db som spillede sidste uge, da den så vil sige at jeg har vedkommende i db. Dette tjekk vil jeg af med....

I min settings.asp har jeg slettet denne:

If Request.QueryString("mess") = "exist" Then
    mess = "alert('Linken/kategorien " & Request.QueryString("name") & " finns allerede!');return true;"
End If

Når jeg gjorde det kommer alert vinduet ikke op, men den smider heller ikke noget ned i DB
Avatar billede thesurfer Nybegynder
24. maj 2005 - 12:32 #10
1) Jeg troede at jeg forstod dit system.. men efter din sidste indlæg, er jeg overbevist om, at jeg ikke forstår det :-)

Kan du foreklare system, med ord?

2) Hvis den skal gemme data'ene, lige meget hvad, ligger "fejlen" her:

  If RS.EOF Then
Conn.Execute("Insert Into url(namn,url,gruppe,hcp,resultat,info,kat) Values('" & Namn & "','" & Url & "','" & Gruppe & "','" & Hcp & "','" & Info & "','" & Resultat & "'," & Kat & ")")
    Response.Redirect "admin.asp?action=inne&catId=" & Kat
  Else
    Response.Redirect "admin.asp?action=inne&catId=" & Kat & "&mess=exist&name=" & RS("kat")
  End If

Den spørger "hvis dataene, hvor url = 'værdien fra formen', IKKE findes, skal der gemmes."

Hvis du fjerner "If RS.EOF Then" (hele "if-else-end if"-strukturen), vil den altid gemme data.. lige meget hvad..

Dvs, der skal kun bruges følgende kode:
Conn.Execute("Insert Into url(namn,url,gruppe,hcp,resultat,info,kat) Values('" & Namn & "','" & Url & "','" & Gruppe & "','" & Hcp & "','" & Info & "','" & Resultat & "'," & Kat & ")")


-- Kommenter både punkt 1 og 2.
Avatar billede cdc Novice
24. maj 2005 - 17:50 #11
kommenterer lige sener:

Microsoft VBScript compilation error '800a03f6'

Expected 'End'

/newsite/junior/torsdag/save.asp, line 20

ElseIf Request.QueryString("do") = "addkat" Then

når jeg har lavet det som du foreslår herover
Avatar billede thesurfer Nybegynder
24. maj 2005 - 18:29 #12
Sådan er strukturen på  IF-sætninger:

1-linies: if "noget" = "andet" then "gør noget"

flere-liniers:
if "noget" = "andet" then
  "gør noget"
end if ' < - -  Husk End if!

flere-liniers med ELSE:
if "noget" = "andet" then
  "gør noget"
else
"gør noget andet"
end if ' < - - Husk End If!


Kig din kode igennem.. så finder du fejlen..
Avatar billede cdc Novice
24. maj 2005 - 18:30 #13
Jeg har kigget den igennem og er ved at finde ud af det nu, så det begynder at spille, vender tilbage sener thesurfer men smid aligevel et svar som jeg kan acceptere bagefter når alt er testet
Avatar billede thesurfer Nybegynder
24. maj 2005 - 18:32 #14
Okeydokey :-)
Avatar billede cdc Novice
24. maj 2005 - 22:45 #15
tak for hjælpen, det fungerer nu, med lidt tilrettninger :o)

//cdc
Avatar billede thesurfer Nybegynder
24. maj 2005 - 22:50 #16
Det var så lidt :-)
Held og lykke med projektet :-)
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