Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    42

    Salvare dati su db solo se il codice fiscale è univoco

    come posso bloccare l'inserimento di un'anagrafica che è gia stata inserita???

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    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.

  3. #3
    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


  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    42
    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    42
    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.
    come gestisco l'errore di mysql???

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    7
    Originariamente inviato da lucaesp
    mi puoi far capire meglio io non sono tato pratico del php
    sotto ho aggiunto qualche commento in più
    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 


  7. #7
    grazie roby

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il codice proposto però richiede che, se non è stato trovato il codice fiscale, si faccia una nuova query, mentre è possibile fare tutto con una.
    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 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.

  9. #9
    e se ci fosse un altro errore?
    Ciao!

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da fmortara
    e se ci fosse un altro errore?
    In tal caso bisogna prevedere una gestione degli errori un po' più efficiente, ad esempio
    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

    La riga di errore ti dirà il numero e la descrizione dell'errore ricevuto.
    Poi in base al numer dell'errore puoi decidere cosa fare.

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.