maxiprins 0 Denunciar post Postado Outubro 15, 2010 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
Leozitho 81 Denunciar post Postado Outubro 16, 2010 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
Alexandre M Narciso 0 Denunciar post Postado Outubro 16, 2010 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