chillnout
Messages postés5Date d'inscriptionmardi 9 décembre 2008StatutMembreDernière intervention 9 janvier 2009
-
12 déc. 2008 à 01:59
chillnout
Messages postés5Date d'inscriptionmardi 9 décembre 2008StatutMembreDernière intervention 9 janvier 2009
-
9 janv. 2009 à 20:25
Bonjour,
Je viens de me lancer dans un petit projet personnel, une page php pour
afficher la liste des fournisseurs de mon entreprise "par
dénomination", par "localité" et par "activité".
Bon, mon souci c'est de créer une page où je peux facilement chercher
un fournisseur soit par son nom, sa localité et son activité.
J'ai créer un formulaire avec une zone de texte pour la denomination, une menu deroulant pour l'activité et un autre menu deroulant pour la localité.
Je veux que je puisse chercher par activité seulement (ça veut dire selectionner FOURNITURES DE BUREAUX dans le menu - localité = vide et denomination=vide) ou par localité seulement ou par denomination seulement aussi.
ou avec des combinaisons de 2 par 2 ...
c'est à ce niveau que je bloque, j'ai pu faire la recherche par un seul critère, mais pour plusieurs avec la possibilitéque 1 ou 2 champs soient vides Non :s
Ce que je cherche à faire me semble pareil aux sites de l'immobilier où
on peut recherche un appart par exemple qui se trouve en sud de france,
au nord ...
J'ai besoin des conseils pour me guider dans mon travail.
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 14 déc. 2008 à 11:56
Salut,
Pense à bien traiter les données qui te sont transmises par le formulaire. Si j'envoie un apostrophe dans un des champs il y a de fortes chances pour que ça plante, je peux aussi écraser ta page en envoyant du code HTML dans ta base, etc ... (cf mysql_real_escape_string et strip_tags)
Pour ce qui est du "= '%';" ce n'est sans doute pas la meilleure solution si ta base comporte de très nombreux enregistrements.
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("frs_db"); // Sélection de la base
$sql = "SELECT * FROM fournisseurs WHERE
denomination LIKE '$denomination' AND
activite LIKE '$activite' AND
localité LIKE '$localite'
";
if (false $query mysql_query($sql)) {
//die (mysql_error()); => à ne pas faire hors tests !!
// => redirection vers une page d'erreur, info au webmaster, ...
}
// Et si la requête ne donne aucun résultat ? => informer l'utilisateur
while ($donnees = mysql_fetch_array($sql, MYSQL_NUM)) {
echo '