Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Insert duplicato

  1. #1

    Insert duplicato

    Salve a tutti.

    Sicuramente qui troverò qualcuno a cui è capitato lo stesso problema, vorrei sapere essenzialmente a cosa è dovuto... se ciò non dovesse trapelare da questa discussione proverò a risolvere la cosa con un artifizio che tuttavia preferirei evitare.

    Sto realizzando una serie di moduli ASP in cui, agendo su tabelle MySQL, gestisco tutta una serie di tabelle mediante le solite operazioni di inserimento, modifica e cancellazione.

    Il problema si riscontra solamente nella prima di queste tre operazioni. Immaginatevi un semplice form di inserimento campi, con tutta una serie di dati da scrivere in una singola riga della tabella.

    Io scrivo i dati, clicco PER UNA E UNA SOLA VOLTA SUL PULSANTE DI SUBMIT e... puf! Il record mi viene inserito, ma per due volte consecutivamente! Tutti i dati da me digitati nel form precedente sono uguali nei due record contigui, l'unica cosa che cambia è l'id!

    Esempio:

    Campi da inserire:

    Nome: Alvaro
    Cognome: Vitali
    Età: 56

    ---- risultato query successiva ---

    1 - Alvaro - Vitali - 56
    2 - Alvaro - Vitali - 56

    A cosa è dovuta questa duplicazione di record?
    C'è un modo per far sì che non si verifichi?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Vediamo lo script.

    Roby

  3. #3
    Lo script si articola in tre differenti includes, che posterò di seguito separate da una linea.

    La prima include contiene il form di inserimento.
    La seconda una confirm javascript di inserimento messaggio.
    La terza l'inserimento fisico nel DB.

    <table cellpadding="0" cellspacing="0" width="400" border="0">
    <tr>
    <td colspan="2">
    <table width="100%" cellpadding="0" cellspacing="0">
    <tr>

    <td colspan="2" align="center">Inserisci voce menu</td>
    </tr>
    </table>
    </td>
    </tr>
    <form name="menudata" action="?action=8" method="post">
    <tr>
    <td align="left">voce</td><td align="left"><input size="40" class="form" type="text" name="voce"></td>
    </tr>
    <tr>
    <td align="left">link</td><td align="left"><input size="40" class="form" type="text" name="link"></td>
    </tr>
    <tr>
    <td align="left">posizione</td><td align="left">
    <input size="1" class="form" name="posizione" type="text">

    </td>
    </tr>
    <tr><td>Sottovoce di:</td><td>
    <select name="id_padre">
    <option value="0">Niente</option>
    <%SqlFindCat="select * from menu where id_padre=0"

    Set rsFindCat = Server.CreateObject("ADODB.Recordset")
    rsFindCat.Open SqlFindCat, conn, 3, 3 %>

    <%if not rsFindCat.eof then
    do while not rsFindCat.eof%>
    <option value="<%=rsFindCat("id")%>"><%=rsFindCat("voce")% ></option>
    <%
    rsFindCat.movenext
    loop
    end if
    %>
    </select>
    <%
    rsFindCat.close
    set rsFindCat=nothing
    %>
    </td>
    </tr>
    <tr>
    <td align="left">Visibile?</td><td align="left">
    <select name="visibile">
    <option value="1">Sì</option>
    <option value="0">No</option>
    </select>
    </td>
    </tr> <tr>
    <td colspan="2" align="center" valign="bottom" height="35">
    <input type="submit" value="Inserisci"/>
    </td>
    </tr>

    </form>
    </table>


    __________________________________________________ __________________________________


    <%
    voce=request("voce")
    link=request("link")
    posizione=request("posizione")
    id_padre=request("id_padre")
    visibile=request("visibile")
    %>
    <script language="javascript">
    if (confirm("Sei sicuro di voler inserire questa voce menu?"))
    {
    document.location.href("?action=9&voce=<%=replace( voce,"''","'")%>&link=<%=replace(link,"''","'")%>& posizione=<%=posizione%>&visibile=<%=visibile%>&id _padre=<%=id_padre%>");
    }
    else
    {
    document.location.href("?action=1");
    }
    </script>


    __________________________________________________ _________________________________

    <%
    voce=replace(request("voce"),"'","''")
    link=replace(request("link"),"'","''")
    visibile=request("visibile")
    posizione=request("posizione")
    id_padre=request("id_padre")

    Addmenu="insert into menu (voce,link,visibile,posizione,id_padre) values ('" & voce & "','" & link & "'," & visibile & "," & posizione & "," & id_padre & ")"

    'response.Write(addmenu)
    'response.End()

    conn.execute(Addmenu)

    sql="select id from menu"

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open Sql, conn, 3, 3

    rs.movelast

    id=rs("id")

    rs.close
    set rs=nothing

    %>
    <script language="javascript">
    window.alert("Voce menu Inserita")
    if (confirm("Vuoi associare un\'immagine a questa voce menu?"))
    {
    document.location.href("gest_menu.asp?action=10&id =<%=id%>&tabella=menu")
    }
    else
    {
    document.location.href("gest_menu.asp")
    }
    </script>
    __________________________________________________ ___________

    Successivamente, vi è un'operazione di upload immagine che non ci interessa particolarmente in questo caso.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    mmm strano.
    Se abiliti questa:

    response.Write(addmenu)
    response.End()

    quante volte te la stampa?

  5. #5
    mi sembra strano..sicuro che il codice dell'inserimento sia tutto li?=

  6. #6
    Per Roby72: La query la stampa solo una volta.

    Per Santino83: sicuro!

  7. #7
    Tengo su... non oso credere che non sia capitato a nessuno

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    71

    Inserimento doppio

    Ragazzi anche a me è capitato questo comportamento anomalo. Invio dei dti tramite form e attraverso una chiamata a stored procedure (sql server 2000) inserisco i dati nel DB. L'effetto è di avere un doppio inserimento.

    Possibile che nessuno sia riuscito a trovare una soluzione??

  9. #9
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    una curiosità :

    action 8 , 9 ,10 a che cosa serve ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.