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
:wink:

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 :wink:

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 :wink:

(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 :wink:

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 :shock:

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 :mrgreen:

Re: Comparer 3 valeurs POST

Posté : 25 mars 2010, 17:28
par stealth35
tu triches y'a que 2 valeurs la :mrgreen:
//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 :shock:
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 :)