8797 sujets

Développement web côté serveur, CMS

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.

Je pense que j'étais assez clair. Smiley smile

Merci beaucoup.
Salut chill out et bienvenue, Smiley smile

le principe est de construire la requête en fonction de la valeur des variables soumises.

Un exemple :
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
	$denomination = !empty($_POST['denomination']) ? trim($_POST['denomination']) : '';
	$localite = !empty($_POST['localite']) ? trim($_POST['localite']) : '';
	$activite = !empty($_POST['activite']) ? trim($_POST['activite']) : '';
	$au_moins_un = false;
	$clause_where = '';
	$prefixe = '';
	if (!empty($denomination)) {
		$clause_where .= " denomination LIKE '%".mysql_real_escape_string($denomination)."%'";
		$prefixe = ' AND';
		$au_moins_un = true;
	}
	if (!empty($localite)) {
		$clause_where .= $prefixe." localite ='".mysql_real_escape_string($localite)."'";
		$prefixe = ' AND';
		$au_moins_un = true;
	}
	if (!empty($activite)) {
		$clause_where .= $prefixe." activite ='".mysql_real_escape_string($activite)."'";
		$au_moins_un = true;
	}
	if ($au_moins_un) {
		require_once('connexion.inc.php');
		$sql = 'SELECT * FROM matable WHERE'.$clause_where.' ORDER BY denomination, localite, activite';
		echo $sql;
		// mysql_query($sql)...
	}

}
?>