Recherche une occurence contenue dans une variable au sein d'une base de données

Signaler
Messages postés
8
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
26 mars 2009
-
Messages postés
8
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
26 mars 2009
-
Bonjour à tous. Je suis en train de travailler à un petit système de newsletter pour mon site http://pomme-poire.fr. Or, comme il faut un commencement à tout, je suis en train de créer un formulaire qui récupère l'adresse email lors de l'inscription et la transmet à la BDD. Tout semble fonctionner correctement à l'exception d'une fonction précieuse mais que je n'arrive pas à mettre en place: je voudrais que le script aille vérifier à chaque saisie d'email si celui-ci n'est pas déjà présent dans la base, pour que les gens ne s'inscrivent pas x fois.  Le problème est que pour l'instant, le script me répond que je suis déjà inscrit à la newsletter, quelle que soit l'adresse fournit. Aussi, je pense que le probleme vient du fait que je transmet dans la requêt SQL une variable php pour la recherche... Voici mon bout de code, auriez-vous une idée? Merci d'avance :)

<?php   
    //Connexion à la BDD
    mysql_connect('localhost','root','');
    mysql_select_db("pomme-poire");
   
    // On vérifie qu'il y a un champs
    if ( isset($_POST['email']) )
    {
        if ( $_POST['email'] != NULL) // On vérifie que le champs est remplit
        {
        $email = $_POST['email']; // On transmet la valeur du champs dans une variable
        $verif_email = mysql_query ("SELECT count(mail) FROM newsletter WHERE mail LIKE '$email'")or die ("erreur dans la requête"); //On compte le nombre de fois où apparait cette valeur dans la BDD
                    if ($verif_email == NULL) //Si la valeur n'est pas présente, on inscrit la personne
                    {   
                        mysql_query ("INSERT INTO newsletter VALUES('','$email')") or die ("impossible de transmettre ces valeurs");
                        echo "vous voilà inscrit, vous recevrez donc les derniers articles de pomme poire abricot chaque semaine sous la forme d'un journal pdf";
                    }
                    elseif ($verif_email != NULL) //Si la valeur est déjà présente, on indique que la personne est déjà inscrite
                    {   
                        echo "vous êtes déjà inscrit à le newsletter";
                    }           
                    else
                    {   
                        echo "veuillez entrez une adresse email valide";
                    }
                   
           
        }
       
    }
    else
    {
        echo "il y a eu un problème lors de la transmission de votre mail, veuillez réessayer";
    }
   
?>

Oléiade

3 réponses

Messages postés
8
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
26 mars 2009

Finalement j'ai réussi à trouver la solution seul, je la donne ici pour ceux qui en auraient besoin un jour ou l'autre:

<?php
    //Connexion à la BDD
    mysql_connect('localhost','root','');
    mysql_select_db("pomme-poire");
   
    // On vérifie qu'il y a un champs
    if ( isset($_POST['email']) )
    {
        if ( $_POST['email'] != NULL) // On vérifie que le champs est remplit
        {
        $email = $_POST['email']; // On transmet la valeur du champs dans une variable        $verif_presence mysql_query ("SELECT mail FROM newsletter WHERE mail '$email'");
        $verif_presence1 = mysql_fetch_array ($verif_presence);
            if ($verif_presence1 != NULL)
            {
                echo "vous etes deja enregistre";
            }
            elseif ($verif_presence1 == NULL)
            {
                mysql_query ("INSERT INTO newsletter VALUES('','$email')") or die ("impossible de transmettre ces valeurs");
                echo "vous voilà inscrit, vous recevrez donc les derniers articles de pomme poire abricot chaque semaine sous la forme d'un journal pdf";
            }
        }
    }
            mysql_close();
?>

Si vous voyez néanmoins quelques améliroations à apporter n'hésitez pas ^^
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Tu devrais utiliser mysql_num_rows() au lieux de faire de la bidouille avec mysql_fetch_array()
Messages postés
8
Date d'inscription
dimanche 1 mars 2009
Statut
Membre
Dernière intervention
26 mars 2009

Je teste ca de suite et j avise, on peut editer ses messages? je suis nouveau ici ^^
Merci en tout cas ^^