come posso bloccare l'inserimento di un'anagrafica che è gia stata inserita???
come posso bloccare l'inserimento di un'anagrafica che è gia stata inserita???
Cioè? Non ho capito, vuoi impedire che in una tabella si inserisca una nuova entry se il codice fiscale che contiene è già presente nel db?
In tal caso, se vuoi farla molto semplice, imposti il campo che contiene il codice fiscale come primary key oppure come unique, quando andrai a fare l'insert, se il codice fiscale della nuova entry è uguale a uno già presente, mysql non aggiungerà niente e ti darà in risposta un errore che poi starà a te gestire come meglio credi.
Codice PHP:
//mysql_connect e blah blah blah
$codicefiscale = "NS8964209JOA";
$sql = "SELECT * FROM dati_anagrafici WHERE codice_fiscale = '$codicefiscale'";
$res = mysql_query( $sql );
$numrows = mysql_num_rows( $res );
if($numrows !== 1) {
// Codice Fiscale Non Esistente
} else {
// Codice Fiscale Esistente
}
Originariamente inviato da sandro010489
Codice PHP:
//mysql_connect e blah blah blah
$codicefiscale = "NS8964209JOA";
$sql = "SELECT * FROM dati_anagrafici WHERE codice_fiscale = '$codicefiscale'";
$res = mysql_query( $sql );
$numrows = mysql_num_rows( $res );
if($numrows !== 1) {
// Codice Fiscale Non Esistente
} else {
// Codice Fiscale Esistente
}
mi puoi far capire meglio io non sono tato pratico del php
come gestisco l'errore di mysql???Originariamente inviato da Alhazred
Cioè? Non ho capito, vuoi impedire che in una tabella si inserisca una nuova entry se il codice fiscale che contiene è già presente nel db?
In tal caso, se vuoi farla molto semplice, imposti il campo che contiene il codice fiscale come primary key oppure come unique, quando andrai a fare l'insert, se il codice fiscale della nuova entry è uguale a uno già presente, mysql non aggiungerà niente e ti darà in risposta un errore che poi starà a te gestire come meglio credi.
sotto ho aggiunto qualche commento in piùOriginariamente inviato da lucaesp
mi puoi far capire meglio io non sono tato pratico del php
al codice di sandro010489
per spiegrati cosa fa il codice
Codice PHP:
//mysql_connect e blah blah blah
//qui si suppone che tramite un form ti sia arrivato il codice fiscale inserito dall'utente
$codicefiscale = "NS8964209JOA";
//qui estrai dalla tabella dati_anagrafici i record che hanno il codice fiscale uguale a quello
//che ti è arrivato tramite form, quindi quello che ha inserito il nuovo utente
$sql = "SELECT * FROM dati_anagrafici WHERE codice_fiscale = '$codicefiscale'";
//qui assegni a res il risultato dell'estrazione
$res = mysql_query( $sql );
//mysql_num_rows è una funzione che ti ritorna il numero delle righe estratte dalla query //precedente. Se il codice fiscale non si trova già nella tabella la funzione restituisce zero righe
$numrows = mysql_num_rows( $res );
//se il numero di righe non è uguale a 1 si determina che non è stato trovato il codice fiscale //nel db
if($numrows !== 1) {
// Codice Fiscale Non Esistente }
else {
// Codice Fiscale Esistente
}
Il codice proposto però richiede che, se non è stato trovato il codice fiscale, si faccia una nuova query, mentre è possibile fare tutto con una.
In questo caso si imputa il fallimento al codice fiscale già esistente perché si suppone che tale campo sia una chiave primaria o quanto meno un campo unique.Codice PHP:
/**** qui i dati per la connessione ***/
$nome = "Paperino"
$cognome = "Paolino";
$codicefiscale = "PLNPPR45P20P879A";
$query = "INSERT INTO tabella VALUES ('".$nome."','".$cognome."','".$codicefiscale."')";
if(!mysql_query($query)) {
//l'inserimento non è avvenuto perché il codice fiscale è già presente
}
else {
//l'inserimento è avvenuto
}
In tal caso bisogna prevedere una gestione degli errori un po' più efficiente, ad esempioOriginariamente inviato da fmortara
e se ci fosse un altro errore?
La riga di errore ti dirà il numero e la descrizione dell'errore ricevuto.Codice PHP:
/**** qui i dati per la connessione ***/
$nome = "Paperino"
$cognome = "Paolino";
$codicefiscale = "PLNPPR45P20P879A";
$query = "INSERT INTO tabella VALUES ('".$nome."','".$cognome."','".$codicefiscale."')";
if(!mysql_query($query)) {
echo "Inserimento non avvenuto, motivo: ".mysql_errno()." - ".mysql_error();
}
else {
//l'inserimento è avvenuto
}
Poi in base al numer dell'errore puoi decidere cosa fare.