Comment éviter faire beaucoup de if ?
nguyen0000
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
nguyen0000 Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
nguyen0000 Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Bonjour, dans le cadre d'un projet de l'université , je dois faire un projet en php et je débute. Pour ce projet je dois faire un annuaire . J'ai fait un formulaire

Je voudrais savoir comment faire pour que l'utilisateur n'a pas besoin de remplir tout les champs , ça m'éviterait de faire 10 000 if tout en bas du code
Le code est un peu long mais répétitif car j'ai fait plusieurs fonction pour faire plusieurs requêtes sql, a chaque fonction j'utilise des différentes paramètres qui récupèrent les valeurs des champs de saisie.
Je vous remercie d'avance

Je voudrais savoir comment faire pour que l'utilisateur n'a pas besoin de remplir tout les champs , ça m'éviterait de faire 10 000 if tout en bas du code
Le code est un peu long mais répétitif car j'ai fait plusieurs fonction pour faire plusieurs requêtes sql, a chaque fonction j'utilise des différentes paramètres qui récupèrent les valeurs des champs de saisie.
Je vous remercie d'avance
<?php // déclaration des variables necessaire $nom_entite=""; $type_entite=""; $secteur_client=""; $ville_entite=""; // recuperation des valeurs saisies foreach ($_POST as $key => $value) { if ($key == 'nomEntites'){ if(!empty($value)){ $nom_entite=$value; } } if ($key == 'Type') { $type_entite=$value; } if ($key == 'ClientSecteur') { $secteur_client=$value; } if ($key == 'Ville') { $ville_entite=$value; } } //fonction de recherche par nom entite function recherche_by_nom($nom_entite) { $hote = "localhost"; $utilisateur = "root"; $mPasse = ""; $nomBase = "chef_oeuvre" ; // à completer $connexion = mysqli_connect($hote,$utilisateur,$mPasse,$nomBase) or die ( " Connexion impossible !"); $query = "Select * FROM entite WHERE NomEntite LIKE '$nom_entite%'"; $result = mysqli_query($connexion,$query); // execute la requete //$assoc = mysqli_fetch_assoc($result); // recupere les resultats //var_dump($assoc); // affiche le contenu de la requete //stock les champs nécessaire à l'affichage dans un tableau gauche : champ de array droite : champ de bdd while ($row=mysqli_fetch_assoc($result)) { $array= array( "nom_entite" => $row['NomEntite'], "adresse" => $row['Adresse'], "type_entite" => $row['Type'], "ville" => $row['Ville'], "codePostal" => $row['CodePostal'], "pays" => $row['Pays'], "email" => $row['Mail'], "contact" => $row['Contact'], "numero_telephone" => $row['NumeroTelephone'], "TVA_Intracommunautaire" => $row['TVA_intra'], "Numero_Siret" => $row['NumeroSiret'], ); } afficherInfo($array); } //fonction de recherche par ville function recherche_by_ville($ville_entite) { $hote = "localhost"; $utilisateur = "root"; $mPasse = ""; $nomBase = "chef_oeuvre" ; // à completer $connexion = mysqli_connect($hote,$utilisateur,$mPasse,$nomBase) or die ( " Connexion impossible !"); $query = "Select * FROM entite WHERE Ville LIKE '$ville_entite%'"; $result = mysqli_query($connexion,$query); // execute la requete //stock les champs nécessaire à l'affichage dans un tableau gauche : champ de array droite : champ de bdd while ($row=mysqli_fetch_assoc($result)) { $array= array( "nom_entite" => $row['NomEntite'], "adresse" => $row['Adresse'], "type_entite" => $row['Type'], "ville" => $row['Ville'], "codePostal" => $row['CodePostal'], "pays" => $row['Pays'], "email" => $row['Mail'], "contact" => $row['Contact'], "numero_telephone" => $row['NumeroTelephone'], "TVA_Intracommunautaire" => $row['TVA_intra'], "Numero_Siret" => $row['NumeroSiret'], ); } afficherInfo($array); } //fonction de recherche par membre ou sous-traitant ou client avec secteur non renseigné function recherche_by_MCS($type_entite) { $hote = "localhost"; $utilisateur = "root"; $mPasse = ""; $nomBase = "chef_oeuvre" ; // à completer $connexion = mysqli_connect($hote,$utilisateur,$mPasse,$nomBase) or die ( " Connexion impossible !"); $query = "Select * FROM entite WHERE Type LIKE '$type_entite%'"; $result = mysqli_query($connexion,$query); // execute la requete //stock les champs nécessaire à l'affichage dans un tableau gauche : champ de array droite : champ de bdd while ($row=mysqli_fetch_assoc($result)) { $array= array( "nom_entite" => $row['NomEntite'], "adresse" => $row['Adresse'], "type_entite" => $row['Type'], "ville" => $row['Ville'], "codePostal" => $row['CodePostal'], "pays" => $row['Pays'], "email" => $row['Mail'], "contact" => $row['Contact'], "numero_telephone" => $row['NumeroTelephone'], "TVA_Intracommunautaire" => $row['TVA_intra'], "Numero_Siret" => $row['NumeroSiret'], ); } afficherInfo($array); } //fonction de recherche par client avec secteur renseigné function recherche_by_MS($type_entite,$secteur_client) { $hote = "localhost"; $utilisateur = "root"; $mPasse = ""; $nomBase = "chef_oeuvre" ; // à completer $connexion = mysqli_connect($hote,$utilisateur,$mPasse,$nomBase) or die ( " Connexion impossible !"); $query = "Select * FROM entite WHERE Type LIKE '$type_entite%' AND ClientSecteur LIKE '$secteur_client%'"; $result = mysqli_query($connexion,$query); // execute la requete //stock les champs nécessaire à l'affichage dans un tableau gauche : champ de array droite : champ de bdd while ($row=mysqli_fetch_assoc($result)) { $array= array( "nom_entite" => $row['NomEntite'], "adresse" => $row['Adresse'], "type_entite" => $row['Type'], "ville" => $row['Ville'], "codePostal" => $row['CodePostal'], "pays" => $row['Pays'], "email" => $row['Mail'], "contact" => $row['Contact'], "numero_telephone" => $row['NumeroTelephone'], "TVA_Intracommunautaire" => $row['TVA_intra'], "Numero_Siret" => $row['NumeroSiret'], ); } afficherInfo($array); } //fonction de recherche function afficherInfo($tab) { echo "<p style='font-weight:bold'>"; echo "Nom de l'entité: "; echo $tab['nom_entite']; // affichage de nom_entite echo "</p>"; echo "Adresse : ";echo $tab['adresse']; // affichage de adresse echo "<br>"; echo " Ville: ";echo $tab['ville']; // affichage de la ville echo " "; echo " Code postal: ";echo $tab['codePostal']; // affichage de codePostal echo " "; echo "<br>"; echo " Email: ";echo $tab['email']; // affichage de Email echo "<br>"; echo " Numero_telephone: ";echo $tab['numero_telephone']; // affichage de Numero telephone echo "<br>"; echo " TVA_Intracommunautaire: ";echo $tab['TVA_Intracommunautaire']; // affichage de N° de TVA Intracommunautaire echo "<br>"; echo " Numero Siret: ";echo $tab['Numero_Siret']; // affichage de Numero Siret echo "<br>"; } $nom_entite=""; $type_entite=""; $secteur_client=""; $ville_entite=""; if (!empty($nom_entite) || empty($type_entite) || empty($secteur_client) || empty($ville_entite) ) { $EntiteInfo= recherche_by_nom($nom_entite); } ?> <form action="annuaire1.php" method="post"> <p><input type="submit" value="NOUVELLE RECHERCHE"></p> </form>
A voir également:
- Comment éviter faire beaucoup de if ?
- Éviter pub youtube - Accueil - Streaming
- Marques smartphone à éviter - Accueil - Guide téléphones
- Liste des sites internet à éviter - Guide
- Comment eviter que les sms se transforme en mms samsung ✓ - Forum Samsung
- Eviter les tunnels waze - Forum GPS
1 réponse
Bonjour,
Primo .. place le code de connexion à ta BDD dans un fichier à part
que tu n'auras qu'à inclure lorsque tu en as besoin au lieu de le copier/coller partout
dans ton code
Ensuite, A moins que tu n'aies vraiment un besoin bien spécifique (que je ne voie pas...)
tu peux tout faire en UNE seule requête.
En jouant avec de la concaténation....
Par exemple :
Cordialement,
Jordane
Primo .. place le code de connexion à ta BDD dans un fichier à part
que tu n'auras qu'à inclure lorsque tu en as besoin au lieu de le copier/coller partout
dans ton code
<?php //Fihcier de connexion à la BDD cnxBDD.php $hote = "localhost"; $utilisateur = "root"; $mPasse = ""; $nomBase = "chef_oeuvre" ; // à completer $connexion = mysqli_connect($hote,$utilisateur,$mPasse,$nomBase) or die ( " Connexion impossible !"); ?>
Ensuite, A moins que tu n'aies vraiment un besoin bien spécifique (que je ne voie pas...)
tu peux tout faire en UNE seule requête.
En jouant avec de la concaténation....
Par exemple :
<?php //------------------------------------------------------------------------------------// //Connexion à la BDD //------------------------------------------------------------------------------------// require_once "cnxBDD.php"; //------------------------------------------------------------------------------------// // FONCTIONS //------------------------------------------------------------------------------------// //fonction de recherche function afficherInfo($tab) { echo "<p style='font-weight:bold'>"; echo "Nom de l'entité: "; echo $tab['nom_entite']; // affichage de nom_entite echo "</p>"; echo "Adresse : ";echo $tab['adresse']; // affichage de adresse echo "<br>"; echo " Ville: ";echo $tab['ville']; // affichage de la ville echo " "; echo " Code postal: ";echo $tab['codePostal']; // affichage de codePostal echo " "; echo "<br>"; echo " Email: ";echo $tab['email']; // affichage de Email echo "<br>"; echo " Numero_telephone: ";echo $tab['numero_telephone']; // affichage de Numero telephone echo "<br>"; echo " TVA_Intracommunautaire: ";echo $tab['TVA_Intracommunautaire']; // affichage de N° de TVA Intracommunautaire echo "<br>"; echo " Numero Siret: ";echo $tab['Numero_Siret']; // affichage de Numero Siret echo "<br>"; } //------------------------------------------------------------------------------------// // Récupération "propre" des variables necessaire //------------------------------------------------------------------------------------// $NomEntite = !empty($_POST['nomEntites']) ? $_POST['nomEntites'] : NULL; $Ville = !empty($_POST['Ville']) ? $_POST['Ville'] : NULL; $Type = !empty($_POST['Type']) ? $_POST['Type'] : NULL; $ClientSecteur = !empty($_POST['ClientSecteur']) ? $_POST['ClientSecteur'] : NULL; //------------------------------------------------------------------------------------// //Construction de la requête en fonctions des champs remplis par l'utilisateur. //------------------------------------------------------------------------------------// $sql = "Select * FROM entite "; //Si au moins un des champs est rempli : if($NomEntite || $Type || $ClientSecteur || $Ville){ $a_params = array(); if($NomEntite){$a_params[] = " NomEntite LIKE '$NomEntite%' "; } if($Ville){$a_params[] = " Ville LIKE '$Ville%' "; } if($Type){$a_params[] = " `Type` LIKE '$Type%' "; } if($ClientSecteur){$a_params[] = " ClientSecteur LIKE '$ClientSecteur%' "; } } //on conmplete la requete en y a joutant le WHERE et les éventuels AND $strWhere = !empty($a_params) ? " WHERE " . join(' AND ',$a_params) : "" ; $query = $sql . $strWhere; //On exécute la requete : $result = mysqli_query($connexion,$query); // execute la requete while ($row=mysqli_fetch_assoc($result)) { $array= array( "nom_entite" => $row['NomEntite'], "adresse" => $row['Adresse'], "type_entite" => $row['Type'], "ville" => $row['Ville'], "codePostal" => $row['CodePostal'], "pays" => $row['Pays'], "email" => $row['Mail'], "contact" => $row['Contact'], "numero_telephone" => $row['NumeroTelephone'], "TVA_Intracommunautaire" => $row['TVA_intra'], "Numero_Siret" => $row['NumeroSiret'], ); } //-----------------------------------------// // Affichage des informations //-----------------------------------------// afficherInfo($array); ?>
Cordialement,
Jordane
Genial ton aide !