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
36
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
36
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
36
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
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
S connesso, internet non disponibile ( con extebder tp-link850) Reti LAN e Wireless 0
F Script java elenco alfabetico non funziona Javascript 3
F Script non funzionante. Devo elencare in ordine alfabetico un elenco di nominativi, ma lo script non Javascript 2
L Estrazione dati casuali non doppioni MySQL 1
napuleone non si chiude il thead e non si apre il tbody Javascript 0
napuleone non si aggiorna textarea in tempo reale Javascript 3
D Modem Asus non trasmette ogni 3/4 giorni Reti LAN e Wireless 2
M non static method cannot be referenced from a static context Java 1
napuleone Con le date il codice da di matto o forse non è così Javascript 6
M Questa pagina non carica correttamente Google Maps: aiuto!! HTML e CSS 1
M "Internet non disponibile" Reti LAN e Wireless 0
L Non vedo pc in rete Reti LAN e Wireless 0
M Numero random non ripetitivo Java 2
G pc desktop non si connette all'hotspot wifi Reti LAN e Wireless 0
L Non riesco a riprodurre uno sfondo Photoshop 0
N Server mysql non raggiungibile da connessione esterna MySQL 1
R Select concatenata che non funziona la seconda volta Ajax 3
L non duplicare dati in stato "aggiornamento" PHP 6
R [Visual Studio Community] Non trovo il Progetto di Setup .NET Framework 0
zorro file PDF non visualizzo niente PHP 9
D modificare questo codice per inserimento in text e non in tabella jQuery 1
A variabile non riconosciuta PHP 0
A Copertura: indicizzata, non inviata nella mappa del sito XML 1
A funzione iconv () non mi funziona PHP 4
D File pdf che non si aprono .... PHP 1
MarcoGrazia ON DUPLICATE KEY ma in realtà non UPDATE mai PHP 17
R Non riesco a rinnovare l'immagine di sfondo PHP 1
G non riesco a capire quale sia l'errore [SQL] MySQL 2
R Non riesco a cambiare l'immagine di sfondo PHP 4
MarcoGrazia Valori di ritorno json via ajax non visti. jQuery 1
W Non fa l'upload PHP 0
W Parametro non corretto. (code: 87) PHP 4
MarcoGrazia Se non sai se riceverai da GET o da POST, puoi verificarlo e far scegliere allo script. Snippet PHP 0
D Alias AS non funziona più con DATE_FORMAT? MySQL 2
A php metodo post jquery non da mai errore jQuery 4
A fread non legge il contenuto del file PHP 4
Alex_70 Button non funziona nella form PHP 2
Tommy03 Order by non funziona MySQL 6
E CSS non riconosciuto PHP 1
S Inserimento multiplo non richiesto PHP 2
L funzione onclik con seno e coseno non va Javascript 3
G Creare side-bar non visibile da dispositivi mobile HTML e CSS 0
L funzione onclick non va Javascript 26
L group by non raggruppa MySQL 2
D FPDF non funziona PHP 3
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2

Discussioni simili