par
lise » 14 févr. 2008, 22:32
Bonjour,
J'ai un formulaire où l'on peut saisir au choix 1, 2 ou 3 adresses emails. Ces adresses sont insérées dans 3 champs differents dans une table. Ces champs s'appellent reponse1c , reponse1f, reponse1i.
Code : Tout sélectionner
CREATE TABLE XXXXXX (
id_rep int(11) NOT NULL auto_increment,
id_votant int(11) NOT NULL default '0',
reponse1a varchar(100) NOT NULL default '',
reponse1b varchar(100) NOT NULL default '',
reponse1c varchar(100) NOT NULL default '',
reponse1d varchar(100) NOT NULL default '',
reponse1e varchar(100) NOT NULL default '',
reponse1f varchar(100) NOT NULL default '',
reponse1g varchar(100) NOT NULL default '',
reponse1h varchar(100) NOT NULL default '',
reponse1i varchar(100) NOT NULL default '',
Je vérifie dans les champs de ma table que ces adresses ne s'y trouvent pas déjà sinon je renvoie un message d'erreur du type "cette adresse existe déjà". La vérification se fait donc sur les 3 champs.
J'avais une requète de départ toute simple mais après réflexion je l'ai modifiée mais elle me retourne toujours mon message d'erreur (cette adresse existe déjà) que l'adresse existe déjà ou qu'elle n'existe pas dans les champs de ma table.
$sql="SELECT * FROM reponse_votant WHERE reponse1c='$reponse1c' OR reponse1f='$reponse1c'
OR reponse1i='$reponse1c' OR reponse1c='$reponse1f' OR reponse1f='$reponse1f' OR
reponse1i='$reponse1f' OR reponse1c='$reponse1i' OR reponse1f='$reponse1i' OR
reponse1i='$reponse1i'";
J'ai récupéré ce que contient ma requète $sql lorsque je ne saisie qu'une seule adresse email et que celle-ci n'est pas dans un des 3 champs de ma table:
=>me renvoie mon message d'erreur "Cette adresse existe déjà".
Lorsque je la teste dans phpmyadmin, cela me renvoie toutes les données de ma table! C'est donc normal que mon message d'erreur s'affiche
Donc ce n'est pas la bonne méthode!
Merci pour votre aide
Bonjour,
J'ai un formulaire où l'on peut saisir au choix 1, 2 ou 3 adresses emails. Ces adresses sont insérées dans 3 champs differents dans une table. Ces champs s'appellent reponse1c , reponse1f, reponse1i.
[code]CREATE TABLE XXXXXX (
id_rep int(11) NOT NULL auto_increment,
id_votant int(11) NOT NULL default '0',
reponse1a varchar(100) NOT NULL default '',
reponse1b varchar(100) NOT NULL default '',
reponse1c varchar(100) NOT NULL default '',
reponse1d varchar(100) NOT NULL default '',
reponse1e varchar(100) NOT NULL default '',
reponse1f varchar(100) NOT NULL default '',
reponse1g varchar(100) NOT NULL default '',
reponse1h varchar(100) NOT NULL default '',
reponse1i varchar(100) NOT NULL default '',[/code]
Je vérifie dans les champs de ma table que ces adresses ne s'y trouvent pas déjà sinon je renvoie un message d'erreur du type "cette adresse existe déjà". La vérification se fait donc sur les 3 champs.
J'avais une requète de départ toute simple mais après réflexion je l'ai modifiée mais elle me retourne toujours mon message d'erreur (cette adresse existe déjà) que l'adresse existe déjà ou qu'elle n'existe pas dans les champs de ma table.
[php]$sql="SELECT * FROM reponse_votant WHERE reponse1c='$reponse1c' OR reponse1f='$reponse1c'
OR reponse1i='$reponse1c' OR reponse1c='$reponse1f' OR reponse1f='$reponse1f' OR
reponse1i='$reponse1f' OR reponse1c='$reponse1i' OR reponse1f='$reponse1i' OR
reponse1i='$reponse1i'";[/php]
J'ai récupéré ce que contient ma requète $sql lorsque je ne saisie qu'une seule adresse email et que celle-ci n'est pas dans un des 3 champs de ma table:
[code]SELECT * FROM reponse_votant WHERE reponse1c='
[email protected]' OR reponse1f='
[email protected]' OR
reponse1i='
[email protected]' OR reponse1c='' OR reponse1f='' OR reponse1i='' OR reponse1c='' OR
reponse1f='' OR reponse1i='' [/code]
=>me renvoie mon message d'erreur "Cette adresse existe déjà".
Lorsque je la teste dans phpmyadmin, cela me renvoie toutes les données de ma table! C'est donc normal que mon message d'erreur s'affiche
Donc ce n'est pas la bonne méthode!
Merci pour votre aide