[PHP&SQL] insérer condition php dans requête

gugusco -  
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
$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


A voir également:

5 réponses

mouglixx Messages postés 535 Statut Membre 159
 
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)";
0
gugusco
 
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)
0
gugusco
 
Au lieu de unset, je voudrais qqch qui fasse que $sqlplus n'apparaisse pas dans la condition where.
0
mouglixx Messages postés 535 Statut Membre 159
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Navid_92 Messages postés 778 Statut Membre 87
 
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é
0