Non registrare se il "dato" esiste già

Meta

Nuovo Utente
21 Mag 2006
5
0
0
Ciao a tutti, sono nuovo in questo forum, spero di trovare un po' di aiuto.

Ho un database con cognomi, gli utenti devono aggiungere il cognome, ma se il cognome esiste già nel database allora dovrei reinderizzare con un messaggio del tipo "cognome già presente".

Ho cercato in giro ma senza risultati, qualcuno sa dirmi come fare?

Grazie in anticipo.
 

daviduccio

Moderatore
5 Ago 2004
1.114
0
0
39
Sicilia
www.daviduccio.it
E' molto semplice da fare!

Nella pagina dove dovrebbe scrivere il cognome sul database, prima della stringa di inserimento, crei un recordset con questa stringa sql:

"Select * from TABELLA where cognome="&replace(request.form("Cognome"),"'","''")

Quello in rosso è se mando i dati con POST, modificalo se è diverso.

Dopo di che fai il ciclo e controlli se esiste

i=0

while not NOMETUORECORDSET.EOF
i=i+1
wend


ed infine ti basta una if!

if i<1 then

INSERISCI DATI NEL DATABASE

else

response.write("Cognome già esistente")

end if


Ciao!:byebye:
 

Meta

Nuovo Utente
21 Mag 2006
5
0
0
Ciao,
grazie per la risposta
ho cmq riscontrato degli errori nella riga Select che non ho saputo risolvere.
Facciamo così, posto lo script, è cortissimo, se puoi me lo modifichi qui così potrà essere utile anche per altri, giusto? :)

Codice:
<%
cognome = Request.Form("cognome")
Cognome	= Replace(Cognome,"'","’")
SQL = "INSERT INTO Risultati (Cognome)"
SQL = SQL & "VALUES ('"&Cognome&"')"
Conn.Execute(SQL)
Conn.close
Response.Redirect "conferma.asp"
%>

La tabella si chiama RISULTATI il set della connessione è CONN
funziona regolarmente, se mi aiuti mi fai un grosso favore.
Grazie.
 

daviduccio

Moderatore
5 Ago 2004
1.114
0
0
39
Sicilia
www.daviduccio.it
Meta ha scritto:
Ciao,
grazie per la risposta
ho cmq riscontrato degli errori nella riga Select che non ho saputo risolvere.
Facciamo così, posto lo script, è cortissimo, se puoi me lo modifichi qui così potrà essere utile anche per altri, giusto? :)

Codice:
<%
cognome = Request.Form("cognome")
Cognome	= Replace(Cognome,"'","’")
SQL = "INSERT INTO Risultati (Cognome)"
SQL = SQL & "VALUES ('"&Cognome&"')"
Conn.Execute(SQL)
Conn.close
Response.Redirect "conferma.asp"
%>

La tabella si chiama RISULTATI il set della connessione è CONN
funziona regolarmente, se mi aiuti mi fai un grosso favore.
Grazie.

potrebbe essere solo un problema di spazio:

<%
cognome = Request.Form("cognome")
Cognome = Replace(Cognome,"'","’")
SQL = "INSERT INTO Risultati (Cognome)"
SQL = SQL & " VALUES ('"&Cognome&"')"
Conn.Execute(SQL)
Conn.close
Response.Redirect "conferma.asp"
%>
 

Meta

Nuovo Utente
21 Mag 2006
5
0
0
Intanto che aspetto una risposta ho fatto diverse prove ma senza un risultato

ricevo il seguente errore:
Codice:
Microsoft VBScript compilation  error '800a0400'
Expected statement
/cognomi/add.asp, line 3
"Select * from Risultati where cognome="&replace(request.form("Cognome"),"'","''")
^

Sono convinto che si tratta di una cosa semplice ma non conosco la sintassi e tantomeno la logica per costruire lo script
ho proprio bisogno di una dritta
:(
 

Meta

Nuovo Utente
21 Mag 2006
5
0
0
Scusa, non ho capito la tua risposta
potresti essere più chiaro?
Questo è lo script che uso per aggiornare il database:
Codice:
<!--#include file="connessione.asp"-->
<%
cognome = Request.Form("cognome")
Cognome	= Replace(Cognome,"'","’")
SQL = "INSERT INTO Risultati (Cognome)"
SQL = SQL & "VALUES ('"&Cognome&"')"
Conn.Execute(SQL)
Conn.close
Response.Redirect "conferma.asp"
%>
e, come ti ho detto funziona perfettamente, ma a questo script vorrei aggiungere (come ho già detto nel precedente post) l'opzione che se il cognome esiste già nel database allora non deve registrarlo ma deve dare un messaggio del tipo:
"il cognome è già presente"
oppure un Response.Redirect "error.asp"
Spero di essere stato chiaro abbastanza
tu di quale spazio parlavi?
 

daviduccio

Moderatore
5 Ago 2004
1.114
0
0
39
Sicilia
www.daviduccio.it
Ma allora di quello che ho scritto non hai capito un cazzo, andiamo bene!

Ti ho descritto la logica da usare e mi richiedi come fare comparire cognome esistente?

Per quanto riguarda l'errore ti ho detto che potrebbe essere un errore di spazio e ti ho riscitto tutto il comando di inserimento corretto, bastava un copia ed incolla! per cui, dato che non comprendi riscrivo tutto:

"Select * from TABELLA where cognome="&replace(request.form("Cognome"),"'","''")

Quello in rosso è se mando i dati con POST, modificalo se è diverso.

Dopo di che fai il ciclo e controlli se esiste

i=0

while not NOMETUORECORDSET.EOF
i=i+1
wend


ed infine ti basta una if!

if i<1 then

cognome = Request.Form("cognome")
Cognome = Replace(Cognome,"'","’")
SQL = "INSERT INTO Risultati (Cognome)"
SQL = SQL & " VALUES ('"&Cognome&"')"
Conn.Execute(SQL)
Conn.close
Response.Redirect "conferma.asp"


else

response.write("Cognome già esistente")

end if


Prova e ciao. :hammer:
 

Meta

Nuovo Utente
21 Mag 2006
5
0
0
Ti ringrazio per la risposta, ho fatto come mi hai detto ma non funziona, ho fatto diverse prove e modifiche ma senza risultati.
Poi ho risolto così:
Codice:
Dim Conn
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("/fpdb/cognomi.mdb")
cognome = Request.Form("cognome")
Cognome = Replace(Cognome,"'","’")

'controllo che non sia già stato inserito
sql="select Cognome from Risultati where ucase(Cognome)='" & trim(ucase(Cognome)) & "'"

set rs=conn.execute(sql)

if not rs.eof then
Response.Redirect "error.asp"
else

SQL = "INSERT INTO Risultati (Cognome)"
SQL = SQL & "VALUES ('"&Cognome&"')"
Conn.Execute(SQL)
end if
set rs=nothing
Conn.close
Response.Redirect "conferma.asp"

Adesso funziona perfettamene.
Grazie ancora
:D
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao

la sosuzione logica per controllare se un dato è gia presente in un campo del db è quella. :fonzie:


Valeria
 
Discussioni simili
Autore Titolo Forum Risposte Data
gandalf1959 IPN Listener di Paypal, non riesco a registrare utente nel mio DB PHP 14
felino Mac OS e Client Mail: Stato non in linea Mac e Software 1
I nome utente non esiste nel database PHP 1
M Drag and Drop non capisco le sequenze... Javascript 1
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
F comando di inclusione file audio in I-Pad non funziona HTML e CSS 1
M Immagini non usate WordPress 0
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
G Numero zero null non deve visualizzare nulla PHP 0
F Paypal _xclick IPN non risponde PHP 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
E Alert non viene mostrato PHP 1
felino Hardisk WD SATA 1TB 3.5" non si avvia! Hardware 4
K Scrip non funzionante Javascript 1
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
zorro CREATE TABLE non funziona PHP 6
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
Sevenjeak Php8 non carica estenzioni PHP 0
R query DELETE non cancella i record PHP 1
otto9due Input text: accetta solo numeri e non può essere vuoto. Javascript 9
G Non vedo frecce su forme Photoshop 2
G Il mio sito dopo aver abilitato l'ssl non visualizza le immagini con indirizzi senza ssl HTML e CSS 0
P jquery refresh div non funziona Javascript 0
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
S Certificato SSL non funzionante Domini 0
zorro modulo di registrazione: funziona ma non sempre PHP 2
D Form contatti non funzionante HTML e CSS 0
MarcoGrazia Trovare record nel database partendo da id non sequenziali PHP 6
M Non ho rinnovato il mio sito su Aruba... Domini 1
T IP INFO NON FUNZIONA PHP 0
Shyson Google search non trova il mio sito SEO e Posizionamento 1
E Estrarre dati da doppia tabella, banale ma non sempre PHP 1
P Data scraping in PHP non funziona PHP 4
otto9due $_FILE non passa i dati dal form PHP 1
keyascii Non è mai troppo tardi Presentati al Forum 0
N dati tabella non presi PHP 1
P Pagina modifica record che non funziona PHP 0
Shyson AUTO_INCREMENT non si aggiorna MySQL 2
Shyson Codice wp-login non funziona PHP 2
S WORDPRESS NON FA INSTALLARE PIU NULLA WordPress 9
Shyson Non mi fa accedere al sito WordPress 12
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1
R INSERT INTO tabella non funziona Classic ASP 2
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
felino Conversione da MPG a MP4: audio non sincronizzato Windows e Software 1
F Telecamere Wi-Fi non si connettono A nvr IP Cam e Videosorveglianza 0
G Finestra di dialogo che non si apre - programma NUENDO Windows e Software 0
L php mysql non salva solo id PHP 21
D Pagina non trovata Wordpress WordPress 7

Discussioni simili