[PHP&SQL] insérer condition php dans requête
gugusco
-
Navid_92 Messages postés 778 Statut Membre -
Navid_92 Messages postés 778 Statut Membre -
Bonjour,
J'ai cherché des solutions sur le net sans succès donc je m'adresse vous:
A la base mon problème est de faire un formulaire de recherche via HTML et PHP et suivant les critères choisis, retourner les résultats de la base de donnée.
Mais comment faire pour que lorsque l'utilisateur est indifférent à un critère, il ne retienne pas ce critère dans la partie WHERE de la requête SQL.
J'avais pensé à utiliser une variable vide mais je pense qu'il va sélectionner pour ce critère les champs vides.
J'ai donc pensé à faire
En gros si l'utilisateur est inddifférent à ce critère, $critere n'existe pas et il n'utilise pas cette variable comme condition dans la requête.
Merci d'avance
J'ai cherché des solutions sur le net sans succès donc je m'adresse vous:
A la base mon problème est de faire un formulaire de recherche via HTML et PHP et suivant les critères choisis, retourner les résultats de la base de donnée.
Mais comment faire pour que lorsque l'utilisateur est indifférent à un critère, il ne retienne pas ce critère dans la partie WHERE de la requête SQL.
J'avais pensé à utiliser une variable vide mais je pense qu'il va sélectionner pour ce critère les champs vides.
J'ai donc pensé à faire
$critere = ''
SELECT ... FROM ... WHERE if($critere){critere = $critere} (sans concaténer évidemment)
En gros si l'utilisateur est inddifférent à ce critère, $critere n'existe pas et il n'utilise pas cette variable comme condition dans la requête.
Merci d'avance
5 réponses
-
Pas sur de tout comprendre, mais fais ta démarche en php.
if ($!critere) { unset($sqlplus) ; }
else { $sqlplus = 'if blablablabla ' ; }
Et dans ta requête sql, tu ajoute $sqlplus
$sql ="SELECT ... FROM ... WHERE $sqlplus (sans concaténer évidemment)"; -
Quand j'applique cela sans concaténer, il me met 'Undefined variable' pour $sqlplus dans la requête (car elle a été détruite par unset)
-
Au lieu de unset, je voudrais qqch qui fasse que $sqlplus n'apparaisse pas dans la condition where.
-
Oh lala.. T'es sur de vouloir coder ?
Fais du CMS ça me semble plus adapté..
Dans sqlplus rajoute where..
Là on parle pas de coding, juste de logique
Fin du suivi de ce post pour ma part -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Tient un code fait vite fait, peut-être te conviendras-t-il mais comme on te l'a déjà dit si tu n'arrives par trop à faire cela, axes toi plus vers des CMS préfabriqués.
<?php if (isset($_POST['critere'])) { switch($_POST['critere']) { case 'nom' : $condition_query = 'WHERE critere = nom'; case 'prenom' : $condition_query = 'WHERE critere = prenom'; case 'age' : $condition_query = 'WHERE critere = age'; } } else $condition_query = null; $retour_query = mysql_query("SELECT * FROM nom_de_la_table $condition_query") or exit(mysql_error()); $stockage_donnees = mysql_fetch_array($retour_query); echo 'Nom: '.htmlspecialchars($stockage_donnees['nom']); echo 'Prénom: '.htmlspecialchars($stockage_donnees['prenom']); echo 'Age: '.htmlspecialchars($stockage_donnees['age']); ?>
? Navid, alias DestEN-
? Contributeur sécurité