Recherche dans une table

Zurg
Invité n'ayant pas de compte PHPfrance

04 avr. 2005, 13:17

Bonjour tout le monde !!

Alors, voilà mon pti problème :

j'essaie de faire un formulaire de saisie d'adresse mail pour une newsletter. Bon, jusque là, ça va ! Sur la page de traitement, je veux faire une recherche dans une table pour vérifier si l'adresse mail saisie existe déjà, mais ça marche pas...snif... :cry:

Bref, voici ce que j'ai fait :
$requete = "SELECT * FROM abonne WHERE mail='".$mail."'";
			$trouve=mysql_query($requete);
			if (!empty($trouve)) {
				print("Votre adresse est déjà présente dans la base, merci de votre intérêt et à très bientôt sur www.folapercussions.com !");
				exit;
			}
Quel que soit l'adresse saisie, j'obtiens toujours le message d'erreur informant que le mail existe déjà dans la base...

Une idée ?? Syntaxe ou mauvaise méthode ?

Merci d'avance !

Mammouth du PHP | 859 Messages

04 avr. 2005, 13:22

$requete = "SELECT * FROM abonne WHERE mail='".$_POST['mail']."'";
$trouve = mysql_query($requete);

if(mysql_num_rows($trouve) !== 0)
    {
        echo "Votre adresse est déjà présente dans la base, merci de votre intérêt et à très bientôt sur www.folapercussions.com !";
    }
Essaye comme ça.

Zurg
Invité n'ayant pas de compte PHPfrance

04 avr. 2005, 13:34

Salut ! et merci !!

J'avais déjà déclaré la variable mail un peu plus haut...

Voici le script complet :
<?php 
			include("Connections/local/cnn.php");
			$mail=$_POST['mail'];
			$type=$_POST['type'];
			$reponse=$_POST['reponse'];
			// tests si les champs sont remplis correctement
			if (empty($mail)) {
				print("Formulaire incomplet : veuillez saisir votre adresse mail<br> <a href=\"javascript:history.go(-1)\">Retour au formulaire</a><br>");
				exit;
			}
			if (!(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $mail))) 
			{
				echo ("L'adresse est invalide, veuillez re-saisir votre adresse, svp<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
				exit;
			}
			if (empty($type)) {
				print("Formulaire incomplet : veuillez cocher une case correspondant à votre type (ex : élève...), svp<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
				exit;
			}
			if (empty($reponse)) {
				print("Formulaire incomplet : veuillez cocher la case 'oui' ou 'non' svp. <br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
				exit;
				}
			// fin des tests
			
			// Vérification du mail pour éviter les doublons			
			$requete = "SELECT * FROM abonne WHERE mail='".$mail."'";
			$trouve=mysql_query($requete);
			if (!empty($trouve)) {
				print("Votre adresse est déjà présente dans la base, merci de votre intérêt et à très bientôt !");
				exit;
			}
			// si mail non présent
			// Ajoute la nouvelle fiche
			$query = "INSERT INTO abonne (mail, type, boutik)";
			$query .= "VALUES('$mail','$type','$reponse')"; 
			$result = mysql_query($query);
			print("Les informations suivantes ont bien été enregistrées :<br>");
			print("<b>Adresse mail : </b>".$mail."<br>"."<b>Catégorie :</b> ".$type."<br>"."<b>Voulez-vous recevoir des informations su la boutique  ? </b>".$reponse."<br>");
			print("<br>");
			print("Merci, <br>");
			print("vous recevrez prochainement des informations sur toutes les activités , les évènements etc...<br>");
			print("A bientôt !<br>");
			mysql_close();
		?>
Voilà !

Mammouth du PHP | 859 Messages

04 avr. 2005, 13:37

Salut ! et merci !!
Ca veut dire que tu as résolu ton problème?

Zurg
Invité n'ayant pas de compte PHPfrance

04 avr. 2005, 13:40

Non, ça veut dire merci de ta réponse ! :D

Mais ça ne marche toujours pas...

Mammouth du PHP | 859 Messages

04 avr. 2005, 13:50

Ok :D

Je ne vois pas de problème dans ta requête :? Ni dans la mienne d'ailleurs...

Zurg
Invité n'ayant pas de compte PHPfrance

04 avr. 2005, 14:01

Re...

Comme d'hab, je me suis trop précipité !!

Avec ta requête ça marche nikel, merci beaucoup !

Bonne journée ;)