Recherche une occurence contenue dans une variable au sein d'une base de données
oleiade
Messages postés8Date d'inscriptiondimanche 1 mars 2009StatutMembreDernière intervention26 mars 2009
-
1 mars 2009 à 12:57
oleiade
Messages postés8Date d'inscriptiondimanche 1 mars 2009StatutMembreDernière intervention26 mars 2009
-
2 mars 2009 à 08:04
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
A voir également:
Recherche une occurence contenue dans une variable au sein d'une base de données
oleiade
Messages postés8Date d'inscriptiondimanche 1 mars 2009StatutMembreDernière intervention26 mars 2009 1 mars 2009 à 15:40
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 ^^