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

Fermé
gugusco - 9 nov. 2011 à 21:16
Navid_92 Messages postés 711 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 12 février 2015 - 13 nov. 2011 à 01:00
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 511 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 13 octobre 2013 159
9 nov. 2011 à 21:21
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
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
Au lieu de unset, je voudrais qqch qui fasse que $sqlplus n'apparaisse pas dans la condition where.
0
mouglixx Messages postés 511 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 13 octobre 2013 159
Modifié par mouglixx le 12/11/2011 à 20:55
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 711 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 12 février 2015 87
Modifié par Navid_92 le 13/11/2011 à 01:01
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