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

    [HELP] Inserisci email in mysql solo se non vi è già inserito

    Salve a tutti,

    Sicuramente commetterò un errore.
    Io volevo dire tramite php di inserire l'email nel database Mysql solo se questa email non è gia presente sul database allora ho scritto:

    Codice PHP:
    INSERT INTO newsletter WHERE email != '".$email_cliente."'SET                                 nome='".$nome_cliente."',                                 cognome='".$cognome_cliente."',                                 email='".$email_cliente."',                                 tipologia_cliente='".$cliente."'"); 
    però non me lo inserisce ne se c'è ne se non c'è. Non la inserisce e basta.. dove sbaglio?

    grazie in anticipo a quanti vorranno aiutarmi.

  2. #2
    che io ne sappia devi fare due query

    Codice PHP:
    $input_email = isset($_POST['email']) ? trim($_POST['email']) : '';
    // regex per validazione email... 
    $query_preliminare "SELECT COUNT(*) FROM newsletter WHERE email='" $input_email ."'";
    $result_preliminare mysql_query($query_preliminare) or die(mysql_error());
    $count mysql_fetch_array($result_preliminare);
    if(
    $count[0]==0)
        {
        
    $query_insert "INSERT INTO newsletter(email) VALUES ('" $input_email ."')";
        
    $result_insert mysql_query($query_insert) or die(mysql_error());
        
    $message "Grazie per esserti registrato alla newsletter";
        }
    else
        {
        
    $message "Questa email risulta già registrata alla newsletter";
        }
        
    echo 
    $message

  3. #3
    Ho modificato il tutto per come consigliavi tu ma continua a non inserirla comunque noti qualcosa che non va?:
    Codice PHP:
    $query_preliminare "SELECT COUNT(*) FROM newsletter WHERE email='" .$email_cliente."'"$result_preliminare mysql_query($query_preliminare) or die(mysql_error()); $count mysql_fetch_array($result_preliminare); if($count[0]==0){     $query_insert "INSERT INTO newsletter SET                                 nome='".$nome_cliente."',                                 cognome='".$cognome_cliente."',                                 email='".$email_cliente."',                                 tipologia_cliente='".$cliente."'";                                 } 

  4. #4
    Originariamente inviato da ciarlystreet
    Ho modificato il tutto per come consigliavi tu ma continua a non inserirla comunque noti qualcosa che non va?:
    Codice PHP:
    $query_preliminare "SELECT COUNT(*) FROM newsletter WHERE email='" .$email_cliente."'"$result_preliminare mysql_query($query_preliminare) or die(mysql_error()); $count mysql_fetch_array($result_preliminare); if($count[0]==0){     $query_insert "INSERT INTO newsletter SET                                 nome='".$nome_cliente."',                                 cognome='".$cognome_cliente."',                                 email='".$email_cliente."',                                 tipologia_cliente='".$cliente."'";                                 } 
    Ho aggiunto alla fine:

    Codice PHP:
    $result_insert mysql_query($query_insert) or die(mysql_error()); 
    Ma ora quando sono uguali fa andare avanti il processo e quando non sono uguali mi compare:

    codice:
    Duplicate entry '0' for key 'PRIMARY'
    consigli?

  5. #5
    errori, compare qualcosa...? da come hai postato dovrebbe andare... (poi ci sarebbero errori concettuali ma è un'altra storia...)

  6. #6
    l'ho postato compare questa scritta quando l'email non sono uguali che blocca il processo:
    codice:
    Duplicate entry '0' for key 'PRIMARY'
    quindi non inserisce nulla lo stesso

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.