Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Controlli su database - Primary Key

    Ciao a tutti!
    Come ben sapete mi sono avvicinato da poco a php.. ed ho una domanda semplice semplice..
    L'utente si iscrive su un FORM che passa i dati alla pagina2.php, che registra i dati nel Database.


    Vorrei sapere quali sono i controlli che devo fare per far sì che non ci siano ripetizioni di dato.
    Nel DATABASE c'è solo una tabella Utente che ha come Chiave Primaria (PK) "USERID", e due altri attributi "NOME" e "COGNOME".

    Se un utente inserisce due volte lo stesso USERID, questo non viene memorizzato nel database in quanto è chiave primaria ed è univoca.
    Io quello che vorrei sapere è come posso fare per avvisare l'utente che quella USERID è gia registrata.

    Quello che a me serve è un controllo sulla variabile che l'utente inserisce, e sulla PK del DB.

    Grazie ragazzi, davvero!
    M.



  2. #2
    stavo pensando ad un foreach?

    Codice PHP:
    $selezione="select userid from persone where userid is not null";
    $miaquery=mysql_query($selezione$connessione);
    $row=mysql_fetch_array($miaquery);
    foreach (
    $row as $key => $value) {

    //la variabile $userid è = a $_POST["userid"] presa dal form e postata dall'utente
    if ($value==$userid ) {
          print 
    "[b]Utente già registrato[/b] \n
    "
    ;
                exit;
          }
          else  {
            
    $miaquery2="insert into persone (Nome, Cognome, Userid, Email, Ruolo) values ('$nome', '$cognome', '$userid', '$mail', '$ruolo')";
          
    $esecuzione=mysql_query($miaquery2);
           print 
    "[b]Inserimento dati riuscito [/b]\n
    "
    ;
                echo 
    "\n
    "
    ;
    exit;
    }
    }
     exit; 

    che ne dite ragazzi? a me non funziona! dove sbaglio?
    A me interessa che quando l'utente scrive i dati nel db, se la sua USERID esiste già deve ricevere un errore!
    Solo che non riesco a gestirli.. devo catturare qualcosa?

  3. #3
    ho provato a vedere se il foreach mi attraversa l'array. non lo fa!!!
    se scrivo
    Codice PHP:
    foreach ($row as $key => $value) {
      print 
    "row $row \n
    "
    ;
      print 
    "key $key \n
    "
    ;
      print 
    "value %value \n
    "
    ;



    mi visualizza questo e non i valori!

    codice HTML:
    row Array
    key 0
    value %value
    row Array
    key userid
    value %value 

  4. #4
    Ho trovato la soluzione!
    Siccome nel database lo USERID non veniva comunque inserito in quanto Chiave Primaria, a me quello che serviva era un avviso per l'utente!

    Ebbene, senza fare tutti i cicli, mi bastava mettere OR DIE ("AVVISO") nella query!!
    Se la query di inserimento dati andava a buon fine, allora vuol dire che USERID non era gia stato inserito.
    Altrimenti se non andava a buon fine c'è l'avviso...

    Funziona???

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.