J'ai édité le message pour une meilleure compréhension. Ceci est mon premier projet en tant qu'étudiant-stagiaire. Il s'agit d'un système de surveillance de l'équipement qui conserve un enregistrement d'équipements informatiques. Cela fait partie du code dans une page contenant une option de filtrage et une table affichant une liste d'équipements informatiques. L'option de filtrage contient plusieurs boutons radio appartenant à deux catégories d'état et d'état. Veuillez consulter les composants des deux catégories à la fin du poste. Les composants sont les valeurs de bouton radio.
La page recharge de la page lorsqu'un autre bouton radio a cliqué sur la recherche sur Facebook. Je voulais de compter le nombre d'équipements par état et à l'état d'être affiché à côté de l'étiquette du bouton radio fort>. Mais, les boutons radio de l'état affectent le comptage d'équipements. Par exemple, la nouvelle EQ est le type d'équipement qui vient d'entrer dans l'inventaire. Lorsque le nouveau bouton EQ est coché et que le bouton Disponible / non attribué est également vérifié, le résultat de la table sera filtré qui affichera des résultats contenant des équipements avec un état neuf et une condition disponible / non assignée. Le résultat de la table sera compté et sera émis à côté de l'étiquette de boutons radio qui indique à l'utilisateur combien d'équipements sont
P> <?php
switch($state AND $condition){
case $state=="allstate" AND $condition=="allcondition":
$sql3="SELECT *FROM eq_inv WHERE eq_condition='Available/Unassigned'";
break;
case $state=="new" AND $condition=="allcondition":
$sql3="SELECT *FROM eq_inv WHERE eq_condition='Available/Unassigned' AND eq_state='new'";
break;
case $state=="old" AND $condition=="allcondition":
$sql3="SELECT *FROM eq_inv WHERE eq_condition='Available/Unassigned' AND eq_state='old'";
break;
case $state=="Unknown state" AND $condition=="allcondition":
$sql3="SELECT *FROM eq_inv WHERE eq_condition='Available/Unassigned' AND eq_state='Unknown state'";
break;
case $state=="Unknown state" AND $condition=="Available/Unassigned":
$sql3="SELECT *FROM eq_inv WHERE eq_condition='Available/Unassigned' AND eq_state='Unknown state'";
break;
}
//Code above is incomplete
$result3=mysqli_query($conn,$sql3);
$count=mysqli_num_rows($result3);
echo "<label style='color:red;'><strong>".$count."</strong></label>";
?>
3 Réponses :
Donc les seuls cas utiles sont alors p> Dans votre cas, vous devez utiliser si / else construction. P> Parce que les commentaires Comment écrire les conditions de toute façon dans une construction d'un commutateur voir Code imbriqué ici: p> commutateur ($ état et $ condition) code> sera évalué en vrai ou faux en fonction des valeurs $ State code> et $ condition code>.
Case VRAI CODE> LI>
case faux code> li>
cas par défaut code> li>
ul> Mise à jour h1>
Est-il possible de faire un commutateur ($ État et une condition $) un vrai cas?
En regardant votre code, ce serait toujours vrai, car $ État et $ la condition sont pas b> cordes vides. Vrai et vrai = vrai.
J'ai appris que l'insertion de plusieurs instructions ou dans une déclaration de cas dans le code que j'ai posté est impossible. Comment puis-je mettre plusieurs conditions dans une déclaration de cas pour raccourcir le code?
@jonaspalmiano Vous pouvez également nier des déclarations de commutation. Ensuite, vous pouvez créer la condition ou b> en fonction du premier cas. Voir ma réponse mise à jour.
Vous pouvez essayer ceci:
<?php
$sql3="SELECT *FROM eq_inv WHERE eq_condition='Available/Unassigned'";
if(in_array($state, ['new', 'old', 'Unknown state']) && in_array($condition, ['allcondition', 'Available/Unassigned'])) {
$sql3 .=" AND eq_state='".$state."'";
}
$result3=mysqli_query($conn,$sql3);
$count=mysqli_num_rows($result3);
echo "<label style='color:red;'><strong>".$count."</strong></label>";
?>
Je partage avec vous les gars le code de travail: Le reste du code est ici . p> p>
Vous n'avez pas besoin des cas de commutation. Vous pouvez simplement remplacer le
eq_condition code> eteq_state code> avec les valeurs. Utilisez des valeurs échappées / des déclarations préparées pour éviter l'injection SQL.Vous n'avez pas une règle logique pour construire votre requête? Si vous avez plus de 32 cas différent pour créer une requête avec 2 paramètres, vous avez un problème logique sur la façon dont vous le faites, je pense
Selon vos besoins, je ne pense pas qu'il y ait besoin de cas de commutation. Je me trompe peut-être, mais selon votre code ci-dessus, si sinon suffit.
J'ai édité le post parce que c'était incomplet, désolé.