Page 1 sur 2
Comparer 3 valeurs POST
Posté : 18 mars 2010, 15:32
par Ardennais08000
Bonjour,
j'ai un soucis avec une comparaison de données provenant d'un formulaire (POST) !
Dans mon formulaire, j'ai 3 champs. Je récupère ensuite les données.
Mais je cherche la solution pour comparer les 3 champs afin qu'aucun des 3 champs soit identique (valeurs différente..) !
Par exemple, lors de la vérification, si un champ est identique à un autre, on affiche une erreur.
J'ai tester pas mal de conditions avec if ( ||, ==..) mais j'ai toujours des erreurs car il faut comparer les 3 champs et non 2 !
Quelqu'un pourrait m'aidé svp ?
Merci beaucoup

Re: Comparer 3 valeurs POST
Posté : 18 mars 2010, 15:45
par stealth35
hello
tu pourrais te servir, de
array_unique et faire une comparaison

Re: Comparer 3 valeurs POST
Posté : 18 mars 2010, 16:00
par Ardennais08000
Bonjour et merci de ta réponse,
je n'ai jamais utilisé cette fonction
Pourrait tu me fournir un exemple concret par rapport à mon problème stp ?
Par avance, merci.
Re: Comparer 3 valeurs POST
Posté : 18 mars 2010, 16:07
par stealth35
array_unique te dedoublonne ton tableau, si il te dedoublonne rien c'est qu'il n'y a pas de doublons, t'aura juste a faire une comparaison entre les 2 tableaux (array_unique et $_POST)
Re: Comparer 3 valeurs POST
Posté : 18 mars 2010, 16:16
par AB
Tu mets tes trois variables dans un $premier_tableau. Ensuite tu défini un $second_tableau = array_unique($premier_tableau). Comme array_unique dédoublonne un tableau il te suffit de comparer ensuite tes deux tableaux. S'ils sont identiques c'est qu'il n'y a pas de doublons.
Re: Comparer 3 valeurs POST
Posté : 18 mars 2010, 16:41
par Ardennais08000
Re bonjour,
j'ai donc fait ceci mais sans succès :
Code : Tout sélectionner
$verif1 = array("$valeur1, $valeur2, $valeur3");
$verif2 = array_unique($verif1);
if($verif1 != $verif2) { echo' blabla...'; }
Help ^^
Re: Comparer 3 valeurs POST
Posté : 18 mars 2010, 16:45
par stealth35
pour construire un tableau c'est
$arr = array(1, 2, 3);
//pas
$arr = array("1, 2, 3") //t'as que une valeur ici
et puis pas besoin de construire un autre tableau suffis de le dupliquer

Re: Comparer 3 valeurs POST
Posté : 24 mars 2010, 15:21
par devlop78
if ($_POST['a'] == $_POST['b'] || $_POST['a'] == $_POST['c'] || $_POST['b'] == $_POST['c']) echo "NOOOOOOOOOOOOOOOOOONNNNN";
ça marche pas ça ???
Re: Comparer 3 valeurs POST
Posté : 24 mars 2010, 15:26
par stealth35
if ($_POST['a'] == $_POST['b'] || $_POST['a'] == $_POST['c'] || $_POST['b'] == $_POST['c']) echo "NOOOOOOOOOOOOOOOOOONNNNN";
ça marche pas ça ???
essaye
(oui ca marche)
Re: Comparer 3 valeurs POST
Posté : 24 mars 2010, 15:37
par AB
if ($_POST['a'] == $_POST['b'] || $_POST['a'] == $_POST['c'] || $_POST['b'] == $_POST['c']) echo "NOOOOOOOOOOOOOOOOOONNNNN";
ça marche pas ça ???
Oui mais si j'ai continué également avec la méthode de
stealth35 c'est que ça marcherait aussi pour un grand nombre d'éléments, alors qu'avec cette méthode ce serait très vite pénible à écrire. Donc c'est une façon de faire utile à connaître

Re: Comparer 3 valeurs POST
Posté : 25 mars 2010, 01:33
par devlop78
Oui pour un grand nombre d'éléments, mais pour 3 éléments, te prends pas la tête avec des tableaux !!
Re: Comparer 3 valeurs POST
Posté : 25 mars 2010, 04:52
par stealth35
Oui pour un grand nombre d'éléments, mais pour 3 éléments, te prends pas la tête avec des tableaux !!
je me tâte pour 3 ca fait commence a être limite... vaux mieux prendre de bonne habitude, a voir...
Re: Comparer 3 valeurs POST
Posté : 25 mars 2010, 17:24
par devlop78
Tu oublies la règle de base : un programmeur est toujours fénéant
Faire une comparaison avec if (ou encore mieux une terniaire) sur 3 éléments est plus rapide que de faire des opérations sur tableau (compte le nombre d'instructions et le nombre de caractères que tu as écris avec tes petits/gros doigts ...). Moi, je suis fénéant et je préfère
($_POST['a'] == $_POST['b']) ? echo "Méchant doublon !" : echo "Cool !!";
que
$montableau = array($_POST['a'], $_POST['b']);
$tabl_comp = array_unique($montableau);
if (count($montableau) != count($tabl_comp)) { echo "Méchant doublon !"; } else { echo "Cool !!"; }

Je suis fénéant lol

Re: Comparer 3 valeurs POST
Posté : 25 mars 2010, 17:28
par stealth35
tu triches y'a que 2 valeurs la
//plus court de faire
if (array_unique($_POST) !== $_POST)) echo "JE SUIS TON PERE";
//que
if ($_POST['a'] == $_POST['b'] || $_POST['a'] == $_POST['c'] || $_POST['b'] == $_POST['c']) echo "NOOOOOOOOOOOOOOOOOONNNNN";
Re: Comparer 3 valeurs POST
Posté : 26 mars 2010, 01:07
par AB
Tu oublies la règle de base : un programmeur est toujours fénéant
Ah ben oui, mais faut la préparer sa fainéantise.
En utilisant array_unique, si le nombre de champs à comparer venait à passer à quatre, pas besoin de retoucher au code. Autrement faut refaire le besogneux
