Avatar billede kjaergaardanders Nybegynder
21. november 2008 - 10:49 Der er 9 kommentarer og
1 løsning

hvordan undgår man dobbelt post i mysql

hej jeg er ved at lave en kunde formular, og er kun intresseret i, at kunden bliver indsat vis han/hun ikke eksisterer i databasen i forvejen. Indtil videre har jeg fået sat siden op så jeg kan indsætte i databasen.


<!-- #include file="include/dbconnect.asp" -->

   

<%    'huske list: først tjek for bruger, så indsæt bruger, til sidst trækker vi bruger ud
if(request.QueryString("go")=1) then
        varFornavn = Request.Form("Fornavn")
        varEfternavn = Request.Form("Efternavn")
        varAddresse = Request.Form("Addresse")
        varPost = Request.Form("post")
        varBy = Request.Form("bynavn")
        varTlfnr = Request.Form("Tlfnr")
       

        KundeSql = "INSERT INTO kundearkiv (kunde_navn, kunde_efternavn, kunde_adresse, kunde_postnr, kunde_by, kunde_tlf) values ("&" '"&varFornavn&"', '"&varEfternavn&"', '"&varAddresse&"', "&varPost&", '"&varBy&"', "&varTlfnr&")"
        Conn.Execute(KundeSql)
        'response.write KundeSql
        'response.End()
        response.Redirect("?page=dankort")
       
   
end if
%>
<table width="289" border="0">
  <tr>
<form action="default.asp?page=kundeinfo&go=1" method="post">
<td width="138">Fornavn:</td> <td width="134"><input type="text" size="10" name="Fornavn"/></td>
<tr>
<td width="77">Efternavn:</td>
<td width="202"> <input type="text" size="10" name="Efternavn"/></td>
</tr> <tr>
<td width="77">Addresse:</td>
<td width="202"> <input type="text" size="10" name="Addresse"/></td>
</tr> <tr>
<td width="77">Post:</td>
<td width="202"> <input type="text" size="10" name="Post"/></td>
</tr> <tr>
<td width="77">By:</td>
<td width="202"> <input type="text" size="10" name="bynavn"/></td>
</tr> <tr>
<td width="77">Tlfnr:</td>
<td width="202"> <input type="text" size="10" name="Tlfnr"/></td>
</tr> <tr>
<td width="77"></td>
<td width="202"><input type="submit" value="betaling" /></td>
</tr> <tr>
</form>

</table>
Avatar billede kjaergaardanders Nybegynder
21. november 2008 - 10:49 #1
men hvordan kommer jeg videre der fra ?
Avatar billede mitbrugernavn Praktikant
21. november 2008 - 11:14 #2
<%    'huske list: først tjek for bruger, så indsæt bruger, til sidst trækker vi bruger ud
if(request.QueryString("go")=1) then
        varFornavn = Request.Form("Fornavn")
        varEfternavn = Request.Form("Efternavn")
        varAddresse = Request.Form("Addresse")
        varPost = Request.Form("post")
        varBy = Request.Form("bynavn")
        varTlfnr = Request.Form("Tlfnr")
            KundeTjek = "Select * from kundearkiv where "
            KundeTjek = KundeTjek & "kunde_navn = '"&varFornavn&"'"
            KundeTjek = KundeTjek & " kunde_efternavn = '"&varEfternavn&"'"
            KundeTjek = KundeTjek & " kunde_adresse = '"&varAddresse&"'"
            KundeTjek = KundeTjek & " kunde_postnr = '"&varPost&"'"
            KundeTjek = KundeTjek & " kunde_by = '"&varBy&"'"
            KundeTjek = KundeTjek & " kunde_tlf = "&varTlfnr&""
        Conn.Execute(KundeTjek)
            if not KundeTjek.eof then
            Tjek = true
            else
            Tjek = false
            end if
            Set KundeTjek = nothing

        if Tjek = false
        KundeSql = "INSERT INTO kundearkiv (kunde_navn, kunde_efternavn, kunde_adresse, kunde_postnr, kunde_by, kunde_tlf) values ("&" '"&varFornavn&"', '"&varEfternavn&"', '"&varAddresse&"', "&varPost&", '"&varBy&"', "&varTlfnr&")"
        Conn.Execute(KundeSql)
        'response.write KundeSql
        'response.End()
        response.Redirect("?page=dankort")
        else
        response.write "kunde er oprettet"
        end if
       
   
end if
%>
Avatar billede kjaergaardanders Nybegynder
21. november 2008 - 23:30 #3
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'kunde_efternavn = '' kunde_adresse = '' kunde_postnr = kunde_by = '' kunde_tlf ' at line 1
/hrdwre/kundeinfo.asp, line 20



ned i KundeTjek = KundeTjek & " kunde_postnr = "&varPost&""  tog jeg friheden til at fjerne enkelt pinger da det er int i mysql db'en, men ellers udover det kunne jeg ikke finde nogen fejl ?




<!-- #include file="include/dbconnect.asp" -->

<% 
if(request.QueryString("go")=1) then
        varFornavn = Request.Form("Fornavn")
        varEfternavn = Request.Form("Efternavn")
        varAddresse = Request.Form("Addresse")
        varPost = Request.Form("post")
        varBy = Request.Form("bynavn")
        varTlfnr = Request.Form("Tlfnr")
            KundeTjek = "Select * from kundearkiv where "
            KundeTjek = KundeTjek & " kunde_navn = '"&varFornavn&"'"
            KundeTjek = KundeTjek & " kunde_efternavn = '"&varEfternavn&"'"
            KundeTjek = KundeTjek & " kunde_adresse = '"&varAddresse&"'"
            KundeTjek = KundeTjek & " kunde_postnr = "&varPost&"" 'måske skal der enkelt pinger på ?
            KundeTjek = KundeTjek & " kunde_by = '"&varBy&"'"
            KundeTjek = KundeTjek & " kunde_tlf = "&varTlfnr&""
        Conn.Execute(KundeTjek)
            if not KundeTjek.eof then
            Tjek = true
            else
            Tjek = false
            end if
            Set KundeTjek = nothing

        if Tjek = false then
        KundeSql = "INSERT INTO kundearkiv (kunde_navn, kunde_efternavn, kunde_adresse, kunde_postnr, kunde_by, kunde_tlf) values ("&" '"&varFornavn&"', '"&varEfternavn&"', '"&varAddresse&"', "&varPost&", '"&varBy&"', "&varTlfnr&")"
        Conn.Execute(KundeSql)
        'response.write KundeSql
        'response.End()
        response.Redirect("?page=dankort")
        else
        response.write "kunde er oprettet"
        end if
     
 
end if
%>
<table width="289" border="0">
  <tr>
<form action="default.asp?page=kundeinfo&go=1" method="post">
<td width="138">Fornavn:</td>
<td width="134"><input type="text" size="10" name="Fornavn"/></td>
<tr>
<td width="77">Efternavn:</td>
<td width="202"> <input type="text" size="10" name="Efternavn"/></td>
</tr> <tr>
<td width="77">Addresse:</td>
<td width="202"> <input type="text" size="10" name="Addresse"/></td>
</tr> <tr>
<td width="77">Post:</td>
<td width="202"> <input type="text" size="10" name="Post"/></td>
</tr> <tr>
<td width="77">By:</td>
<td width="202"> <input type="text" size="10" name="bynavn"/></td>
</tr> <tr>
<td width="77">Tlfnr:</td>
<td width="202"> <input type="text" size="10" name="Tlfnr"/></td>
</tr> <tr>
<td width="77"></td>
<td width="202"><input type="submit" value="betaling" /></td>
</tr> <tr>
</form>

</table>
Avatar billede mitbrugernavn Praktikant
22. november 2008 - 08:30 #4
nu er det lidt svært at vide hvor linie 20 er - men
prøv at skift linierne her -

set rs = Conn.Execute(KundeTjek)
            if not rs.eof then
            Tjek = true
            else
            Tjek = false
            end if
            Set rs= nothing

'og så har du noget her
  KundeSql = "INSERT INTO kundearkiv (kunde_navn, kunde_efternavn, kunde_adresse, kunde_postnr, kunde_by, kunde_tlf) values ('"&varFornavn&"', '"&varEfternavn&"', '"&varAddresse&"', "&varPost&", '"&varBy&"', "&varTlfnr&")"
Avatar billede kjaergaardanders Nybegynder
22. november 2008 - 15:05 #5
får ny fejl,
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'kunde_efternavn = '' kunde_adresse = '' kunde_postnr = kunde_by = '' kunde_tlf ' at line 1
/hrdwre/kundeinfo.asp, line 20

linie 20 ja sorry det er linien med "set rs = Conn.Execute(KundeTjek)" jeg tænkte på om fejl kunne være overfor, hvor jeg laver kundetjek ?


<%
if(request.QueryString("go")=1) then
        varFornavn = Request.Form("Fornavn")
        varEfternavn = Request.Form("Efternavn")
        varAddresse = Request.Form("Addresse")
        intPost = Request.Form("post")
        varBy = Request.Form("bynavn")
        intTlfnr = Request.Form("Tlfnr")
            KundeTjek = "Select * from kundearkiv where "
            KundeTjek = KundeTjek & " kunde_navn = '"&varFornavn&"'"
            KundeTjek = KundeTjek & " kunde_efternavn = '"&varEfternavn&"'"
            KundeTjek = KundeTjek & " kunde_adresse = '"&varAddresse&"'"
            KundeTjek = KundeTjek & " kunde_postnr = "&intPost&""
            KundeTjek = KundeTjek & " kunde_by = '"&varBy&"'"
            KundeTjek = KundeTjek & " kunde_tlf = "&intTlfnr&""
        set rs = Conn.Execute(KundeTjek) ' dette er linie 20
            if not rs.eof then
            Tjek = true
            else
            Tjek = false
            end if
            Set rs= nothing

        if Tjek = false then
          KundeSql = "INSERT INTO kundearkiv (kunde_navn, kunde_efternavn, kunde_adresse, kunde_postnr, kunde_by, kunde_tlf) values ('"&varFornavn&"', '"&varEfternavn&"', '"&varAddresse&"', "&intPost&", '"&varBy&"', "&intTlfnr&")"
        Conn.Execute(KundeSql)
        response.Redirect("?page=dankort")
        else
        response.write "kunde er oprettet"
        end if
end if
%>
Avatar billede mitbrugernavn Praktikant
22. november 2008 - 15:44 #6
ups du har glemt and i kundetjek

KundeTjek = "Select * from kundearkiv where "
            KundeTjek = KundeTjek & " kunde_navn = '"&varFornavn&"' and "
            KundeTjek = KundeTjek & " kunde_efternavn = '"&varEfternavn&"' and "
            KundeTjek = KundeTjek & " kunde_adresse = '"&varAddresse&"' and "
            KundeTjek = KundeTjek & " kunde_postnr = "&intPost&" and "
            KundeTjek = KundeTjek & " kunde_by = '"&varBy&"' and "
            KundeTjek = KundeTjek & " kunde_tlf = "&intTlfnr&""
Avatar billede mitbrugernavn Praktikant
24. november 2008 - 12:00 #7
hvordan er det gået ?????
Avatar billede kjaergaardanders Nybegynder
24. november 2008 - 12:23 #8
Det fungere fint nu, :-) point hvordan gør man ?
Avatar billede kjaergaardanders Nybegynder
24. november 2008 - 12:27 #9
nå ja DU skal give svar :-)
Avatar billede mitbrugernavn Praktikant
24. november 2008 - 18:55 #10
super - så får du et svar herfra ;-))
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