Condition complexe, besoin d'aide
Résolu
lonestone1
-
lonestone1 -
lonestone1 -
Bonjour,
Je suis en train d'essayer de faire une requête peut être (trop)complexe pour mon niveau et je viens demander votre aide avant de faire n'importe quoi.
Sur mon futur site lorsqu'un admin postera un article il devra choisir entre 5 catégories (qui sont des select). Pour sécurisé le tout j'aimerais afficher une erreur si:
- l'admin ne choisis aucune des 5 catégories
- l'admin choisis plus d'une catégorie donc 2,3,4 ou 5 catégorie
voici le début de code:
le code est loin d'être terminé mais je me rend compte que je me prends peut être trop la tête, y aurais il un moyen de faire plus simple et plus lisible ?
merci d'avance pour votre aide.
Je suis en train d'essayer de faire une requête peut être (trop)complexe pour mon niveau et je viens demander votre aide avant de faire n'importe quoi.
Sur mon futur site lorsqu'un admin postera un article il devra choisir entre 5 catégories (qui sont des select). Pour sécurisé le tout j'aimerais afficher une erreur si:
- l'admin ne choisis aucune des 5 catégories
- l'admin choisis plus d'une catégorie donc 2,3,4 ou 5 catégorie
voici le début de code:
if(empty($_POST['category_one']) & empty($_POST['category_two']) & empty($_POST['category_three']) & empty($_POST['category_four']) & empty($_POST['category_five']) OR !empty($_POST['category_one']) & !empty($_POST['category_two']) & !empty($_POST['category_three']) & !empty($_POST['category_four']) & !empty($_POST['category_five']) OR empty($_POST['category_one']) & !empty($_POST['category_two']) & !empty($_POST['category_three']) & !empty($_POST['category_four']) & !empty($_POST['category_five']) OR empty($_POST['category_two']) & !empty($_POST['category_one']) & !empty($_POST['category_three']) & !empty($_POST['category_four']) & !empty($_POST['category_five']) OR empty($_POST['category_three']) & !empty($_POST['category_one']) & !empty($_POST['category_two']) & !empty($_POST['category_four']) & !empty($_POST['category_five']) OR empty($_POST['category_four']) & !empty($_POST['category_one']) & !empty($_POST['category_two']) & !empty($_POST['category_three']) & !empty($_POST['category_five']) OR empty($_POST['category_five']) & !empty($_POST['category_one']) & !empty($_POST['category_two']) & !empty($_POST['category_three']) & !empty($_POST['category_four']) ){ $erreur_category = "Une erreur est survenue"; $valid = false; }
le code est loin d'être terminé mais je me rend compte que je me prends peut être trop la tête, y aurais il un moyen de faire plus simple et plus lisible ?
merci d'avance pour votre aide.
A voir également:
- Condition complexe, besoin d'aide
- Excel cellule couleur si condition texte - Guide
- Excel condition ou - Guide
- Condition optimale téléphone ✓ - Forum Mobile
- Excel soustraction avec condition ✓ - Forum Excel
- Tableau complexe word - Guide
2 réponses
Une manière simple de procéder serait de tout simplement compter le nombre de champs qui ont été remplis:
Il y a d'autres manières de procéder mais celle-ci me semble la plus simple.
Bonne chance!
$nb_cat=0; // Pour chaque catégorie (1,2,3,4 et 5): // Si le champ n'est pas vide, on ajoute 1 au compteur. $nb_cat += ( !empty( $_POST['category_one'] ) ) ? 1 : 0 ; $nb_cat += ( !empty( $_POST['category_two'] ) ) ? 1 : 0 ; $nb_cat += ( !empty( $_POST['category_three'] ) ) ? 1 : 0 ; $nb_cat += ( !empty( $_POST['category_four'] ) ) ? 1 : 0 ; $nb_cat += ( !empty( $_POST['category_five'] ) ) ? 1 : 0 ; if( $nb_cat <= 0 ) { $erreur_category = "Vous devez choisir au moins une catégorie."; } else if( $nb_cat > 1 ) { $erreur_category = "Vous devez choisir une seule catégorie."; }
Il y a d'autres manières de procéder mais celle-ci me semble la plus simple.
Bonne chance!
lonestone1
merci c'est exactement ce qu'il me fallait !!
Bonjour, tu te prend la tête pour rien ! voici un petit code pour toi !:
ps: j'ai pas trop bien indenté mais je pense que tu peux comprendre :)
J'espère que j'ai réussi à t'aider. Bon script !
<?php
if(isset($_POST['cat'])) //Check si on poste quelque chose
{
$cat = $_POST['cat'];
if($cat === '0')
{
echo 'Veuillez choisir une catégorie';
}else {
echo'La catégorie est ok et il s\'agit de la catégorie: '.$cat.''; //ton code de traitement ici
}
}
?>
<form action ="" method="post">
<select name="cat">
<option value="0">Rien</option>
<?php
for ($i = 1; $i <= 5; ++$i)
echo '<option value= ' . $i . '> Catégorie ' .$i . '</option>';
?>
</select>
<input type="submit" Value="envoyer">
</form>
</select>
ps: j'ai pas trop bien indenté mais je pense que tu peux comprendre :)