8797 sujets

Développement web côté serveur, CMS

Bonjour Smiley biggrin ,

Je souhaiterai intégrer dans mon formulaire de recherche multicritère la recherche d'un budget supérieur ou égal à ..., et inférieur ou égal à ...
Je sais que la requete se fait comme ceci:


SELECT * FROM table WHERE (budget >= 100000) AND (budget <= 300000)


mais j'ai beaucoup de mal à l'intégrer et à modifier mon code qui est le suivant:


if(!empty($_SESSION['choixnbpieces']))
{

	if($fLig != 0)
	{$fLig = 0;}

	else{$whereReq .= "AND ";}
	
	$tabsearchpieces = explode(",&nbsp;", $_SESSION['choixnbpieces']);
	$listsearchpieces = "";
	$fsearchpieces = 1;
	

	foreach($tabsearchpieces as $searchpieces)
	{

		if($fsearchpieces){$listsearchpieces .= "'".trim($searchpieces)."'"; $fsearchpieces = 0;}

		else{$listsearchpieces .= ",'".trim($searchpieces)."'";}
	}
	

	$whereReq .= "searchpieces IN(".$listsearchpieces.") ";
}


ma requete:


$sel = "SELECT *, date_format(date_annonce, '%d/%m/%Y') as date_fr FROM $tables WHERE $whereReq ORDER BY $orderby LIMIT ".$start.",".$nb_results_p_page;


Merci de votre aide...
Salut,


difficile de t'aider sans avoir plus de précisions, mais si tu as un champ de budget minimum & un champ de budget maximum, tu devrais avoir quelque chose comme ceci, juste après le code que tu as posté :
if (!empty($_POST['budget_min']) && !empty($_POST['budget_max']) {
  $budget_max = 1 * $_POST['budget_max'] ;
  $budget_min = 1 * $_POST['budget_min'] ; 
  $whereReq .= " AND budget BETWEEN $budget_min AND $budget_max" ;
}
elseif (!empty($_POST['budget_min']) {
  $budget_min = 1 * $_POST['budget_min'] ;
  $whereReq .= " AND budget >= $budget_min" ;
}
elseif (!empty($_POST['budget_max']) {
  $budget_max = 1 * $_POST['budget_max'] ;
  $whereReq .= " AND budget <= $budget_max" ;
}
Bonjour Thomas, en faite je n'ai qu'un champ budget dans lequel je souhaite faire la recherche. j'ai testé la requete ci dessous dans phpmyadmin et elle fonctionne mais j'ai du mal à l'intégrer dans mon code.


SELECT * FROM table WHERE (budget >= 100000) AND (budget <= 300000)


Merci pour ta réponse... Smiley biggrin
Je ne parlais pas du champ budget dans la table, mais bien des champs dans le formulaire HTML : j'ai supposé que tes utilisateurs avaient la possibilité d'entrer une valeur pour le budget max & une valeur pour le budget min Smiley cligne

La fonction SQL "BETWEEN ... AND ..." fait exactement la même chose que celle que tu as utilisée, en moins fatiguant pour mes petits doigts Smiley smile
a écrit :

Je ne parlais pas du champ budget dans la table, mais bien des champs dans le formulaire HTML : j'ai supposé que tes utilisateurs avaient la possibilité d'entrer une valeur pour le budget max & une valeur pour le budget min


Oups! Smiley confused , oui pardon c'est bien comme ceci que se présente le formulaire html...

Merci pour ta solution, je vais tester...
Modifié par Sclormu (27 Dec 2007 - 06:47)
ça fonctionne parfaitement, merci Thomas d'avoir partagé tes compétences..

A+ Smiley biggrin
Modifié par Sclormu (27 Dec 2007 - 15:32)