Champ "vide" pour variable lors d'une requète ?
Posté : 08 juil. 2008, 19:36
Salut,
je cherche à faire une requète mysql multicritères à partir de laquelle mes visiteurs pourraient trier les résultats selon leurs préférences. Pour ce faire, les variables sont postées à partir d'un formulaire où le visiteur sélectionne ses options ou non (à partir de listes dans le formulaire)
Le problème que je rencontre c'est lorsqu'un des critères n'est pas sélectionné : dans ce cas mysql lui attribue la valeur nulle et il n'y a donc aucun résultat.
Mysql lui attribue la valeur nulle car j'ai indiqué 'Value=""' dans mon formulaire.
Ce que je voudrais c'est que lorsque une des options n'est pas définie par l'utilisateur alors elle ne soit pas prise en compte ou autrement dit que la requète envoyée recherche uniquement les options qui ont été précisées par le visiteur.
Seulement je ne sais pas comment faire ca, y at-il une astuce pour qu'une variable envoyée par formulaire n'ait pas de valeur si elle n'est pas renseignée ?
J'ai réussi à contourner le problème en utilisant LIKE '$variable%' pour chaque variable mais je préfèrerais éviter car il me semble que ca présente des risques au niveau sécurité, comme par exemple avec l'injection de données dans l'url.
je cherche à faire une requète mysql multicritères à partir de laquelle mes visiteurs pourraient trier les résultats selon leurs préférences. Pour ce faire, les variables sont postées à partir d'un formulaire où le visiteur sélectionne ses options ou non (à partir de listes dans le formulaire)
Le problème que je rencontre c'est lorsqu'un des critères n'est pas sélectionné : dans ce cas mysql lui attribue la valeur nulle et il n'y a donc aucun résultat.
Mysql lui attribue la valeur nulle car j'ai indiqué 'Value=""' dans mon formulaire.
Ce que je voudrais c'est que lorsque une des options n'est pas définie par l'utilisateur alors elle ne soit pas prise en compte ou autrement dit que la requète envoyée recherche uniquement les options qui ont été précisées par le visiteur.
Seulement je ne sais pas comment faire ca, y at-il une astuce pour qu'une variable envoyée par formulaire n'ait pas de valeur si elle n'est pas renseignée ?
J'ai réussi à contourner le problème en utilisant LIKE '$variable%' pour chaque variable mais je préfèrerais éviter car il me semble que ca présente des risques au niveau sécurité, comme par exemple avec l'injection de données dans l'url.