Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

maxiprins

Formulário de Busca por ano

Recommended Posts

Boa Noite pessoal sou novo por aqui estou tentando desenvolver um sistema de busca +/- avançado de carros, e espero que vocês possam me ajudar

 

o form de busca possui os seguintes campos:

 

categoria

marca

modelo

ano (são dois campos)

valor (são dois campos)

 

Categoria,marca e modelo esta rodando redodinho, agora eu queria incluir na busca o ano (de e até) e valor (de e até), estilo o site da webmotors e outros de carros por ai, mais estou levando uma surra danada, segue o código:

if (isset($_GET['categoria']) && is_numeric($_GET['categoria']) && $_GET['categoria'] > 0 ) {

	$busca .= "AND av_cat_id = ".$_GET['categoria']." ";
}

if (isset($_GET['marca']) && is_numeric($_GET['marca']) && $_GET['marca'] > 0 ) {

	$busca .= "AND av_mar_id = ".$_GET['marca']." ";
}


if (isset($_GET['modelo']) && is_numeric($_GET['modelo']) && $_GET['modelo'] > 0 ) {

	$busca .= "AND av_mod_id = ".$_GET['modelo']." ";
}

//parte ano



//fim parte ano



//parte valor



//fim parte valor


//echo $busca;

 

Eu acho que com isso ja da pra ter uma idéia, mais caso precise posto o cód. todo, valew quem der uma ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá maxiprins,

 

Eu acredito que a sua dúvida é mais quanto a modelagem SQL do que com o PHP.

 

Para fazer as comparações entre um ano e outro e entre um valor e outro eu sugiro que você utilize a cláusula BETWEEN do SQL.

 

Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz alguns sites de veículos e faço mais ou menos assim:

 

	echo montaSQL();
	
	function montaSQL() {
	
		$pesquisa = array();
		if ((int)$_GET["categoria"]>0) array_push($pesquisa, "av_cat_id = ".$_GET['categoria']);
		if ((int)$_GET["marca"]>0) array_push($pesquisa, "av_mar_id = ".$_GET['marca']);
		if ((int)$_GET["modelo"]>0) array_push($pesquisa, "av_mod_id = ".$_GET['modelo']);
		
		if ((int)$_GET["ano_de"]>0) array_push($pesquisa, "ano >=".$_GET["ano_de"]);
		if ((int)$_GET["ano_ate"]>0) array_push($pesquisa, "ano <=".$_GET["ano_ate"]);
		
		if ((float)$_GET["valor_de"]>0) array_push($pesquisa, "valor >=".$_GET["valor_de"]);
		if ((float)$_GET["valor_ate"]>0) array_push($pesquisa, "valor <=".$_GET["valor_ate"]);
		
		$where = "";
		foreach($pesquisa as $i=>$condicao) {
			if ($i>0) $where .= " AND ";
			$where .= $condicao;
		}
		if (sizeof($pesquisa)>0) $where = " WHERE " . $where;
		$strsql = "SELECT * FROM veiculos " . $where;
		
		return $strsql;
	}

Vê se isso lhe ajuda de algum modo!

 

Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.