Ir para conteúdo
Fórum Script Brasil

CoderV

Membros
  • Total de itens

    8
  • Registro em

  • Última visita

Sobre CoderV

  • Data de Nascimento 29/06/1992

Contatos

  • MSN
    vini-punk@hotmail.com

Perfil

  • Gender
    Male
  • Location
    Caxias do Sul - RS

CoderV's Achievements

0

Reputação

  1. Caso alguém tenha o mesmo problema abaixo está a classe e etc pra ter como exemplo. Ele monta o select conforme o usuário digite nos campos. Como eu disse no inicio não sou experte em php e essa foi a solução que encontrei para resolver o problema talvez com um framework fosse mais facil ou até alguma fnção u uma forma diferente pudese ser feito. Tem alguns comentários no meio e também alguns debugs hehe <?php class Anuncios { /* * Método para busca rápida por form * Parametros usados: * $cat = categoria do veiculo * $marc = marca do veiculo * $veiculo = veiculo * $anoMin = ano minimo do veiculo * $anomax = ano máximo do veiculo * $valMin = valor minimo do veiculo * $valMax valor máximo do veiculo * $buscar valor verdadeiro caso formulário seja enviado * SELECT * FROM `anuncios` WHERE ); */ public function buscaRapida($cat,$marc,$veiculo,$anoMin,$anoMax,$valMin,$valMax,$buscar){ if($buscar != ""){ /* * Inicia verificação dos campos nulos onde cada campo preenchido * soma 1 a variável $i */ $i = 0; $cat <> 0 ? $i = 1 : $i = $i; $marc <> 0 ? $i++ : $i = $i; $veiculo <> null ? $i++ : $i = $i; $anoMin <> null ? $i++ : $i = $i; $anoMax <> null ? $i++ : $i = $i; $valMin <> null ? $i++ : $i = $i; $valMax <> null ? $i++ : $i = $i; /* * Verifica a variável $i caso seja menor que 1 então nenhum campo foi preenchido * e retorna. * verificação feita para evitar full scan na tabela. */ if($i>=1){ echo ''; }else{ echo 'Você precisa especificar ao menos um campo na pesquisa'; return; } if($cat == 0){$campoCat = '';}else{$campoCat = "categoria = $cat";} if($marc == 0){$campoMarc = '';}else{$campoMarc = " marca = $marc ";} if($veiculo == null){$campoVeiculo = '';}else{$campoVeiculo = " veiculo like '%$veiculo%' ";} if($anoMin == null || $anoMax == null){ echo "<span style='background-color:#d4d4d4;padding:3px;;display:Block;'>Para pesquisar pelo ano do veiculo é preciso especificar<br /> o ano minimo e máximo do veiculo a busca ignorou os campos Ano da busca</span><br />"; $camposAno = ''; }else{ $camposAno = " (ano >= $anoMin or ano <= $anoMax) "; } if($valMin == null || $valMax == null){ echo "<span style='background-color:#d4d4d4;display:Block; padding:3px;'>Para pesquisar pelo valor do veiculo é preciso especificar<br /> o valor minimo e máximo do veiculo a busca ignorou os campos valores </span><br />"; $camposVal = ''; }else{ $camposVal = " (valor >= $valMin or valor <= $valMax) "; } $campoMarc <> '' ? $andMarc = ' and ' : $andMarc = ''; $campoVeiculo <> '' ? $andVeiculo = ' and ' : $andVeiculo = ''; $camposAno <> '' ? $andAno = ' and ' : $andAno = ''; $camposVal <> '' ? $andVal = ' and ' : $andVal = ''; $query = 'SELECT * FROM anuncios WHERE '; $queryFinal = $query. $campoCat.$andCat.$andMarc. $campoMarc.$andVeiculo. $campoVeiculo.$andAno. $camposAno.$andVal. $camposVal; echo $queryFinal; $queryAdd = $query + $cat == null ? $cat = '' : + $cat = " `categoria` = $cat and ". $marc == null ? $marc = '' : +$marc = " `marca` = $marc and "; $veiculo == null ? $veiculo = '' : $veiculo = " veiculo` like '%$veicQuery%' and "; $anoMin == null || $anoMax == null ? '' : " (`valor` >= $anoMin or `ano` <= $anoMax) and ". $valMin == null || $valMax == null ? '' : " (`valor` >= $valMin or `valor` <= $valMax) "; echo $queryAdd."<br />"; $execQuery = mysql_query($queryAdd); } else { return; } } } ?>
  2. Consegui resolver o problema agora está funcionando 100% só precisei adicinaro uma verificação para mais um and agora funciona todos indempendentes e dinamicos. Obrigado a todos que ajudaram.
  3. Eu montei da seguinte forma que creio eu estar no caminho certo. Primeiro eu verifico se todos os campos estão vazios de uma forma dinâmica ou seja ele verifica cada um indempendente e conta quantos foram preenchido o requisito é 1 campo para poder efetuar e pesquisa. Depois crio os campos com pedaços desse select caso não seja nulo o campo. e no final concateno as variáveis mas o problema é no and do sql, não consigo pensar como fazer para ele inserir o and conforme precise pois tem muitas condições a serem analizadas. Eu consegui fazer concatenar com o and mas se muda a ordem ele se perde abaixo o novo código da classe. Será que estou indo pelo caminho certo? ou existe uma forma mais facil de fazer isso ou mais funcional. grato desde já. <?php class Anuncios { public function buscaRapida($cat,$marc,$veiculo,$anoMin,$anoMax,$valMin,$valMax,$buscar){ if($buscar != ""){ $i = 0; $cat <> 0 ? $i = 1 : $i = $i; $marc <> 0 ? $i++ : $i = $i; $veiculo <> null ? $i++ : $i = $i; $anoMin <> null ? $i++ : $i = $i; $anoMax <> null ? $i++ : $i = $i; $valMin <> null ? $i++ : $i = $i; $valMax <> null ? $i++ : $i = $i; if($i>=1){ echo ''; }else{ echo 'Você precisa especificar ao menos um campo na pesquisa'; return; } if($cat == 0){$campoCat = '';}else{$campoCat = "`categoria` = $cat";} if($marc == 0){$campoMarc = '';}else{$campoMarc = " `marca` = $marc ";} if($veiculo == null){$campoVeiculo = '';}else{$campoVeiculo = " veiculo` like '%$veicQuery%' ";} if($anoMin == null || $anoMax == null){ $camposAno = ''; }else{ $camposAno = " (`ano` >= $anoMin or `ano` <= $anoMax) "; } if($valMin == null || $valMax == null){ $camposVal = ''; }else{ $camposVal = " (`valor` >= $valMin or `valor` <= $valMax) "; } $campoMarc <> '' ? $andMarc = ' and ' : $andMarc = ''; $campoVeiculo <> '' ? $andVeiculo = ' and ' : $andVeiculo = ''; $camposAno <> '' ? $andAno = ' and ' : $andAno = ''; $query = 'SELECT * FROM `anuncios` WHERE '; $queryFinal = $query. $campoCat.$andCat.$andMarc. $campoMarc.$andVeiculo. $andMarcF.$campoVeiculo.$andAno. $andMarcF.$camposAno. $camposVal; echo $queryFinal; } else { return; } } } ?>
  4. CoderV

    conectar ao banco mysql online

    Não entendi direito você quer conectar a um banco em um servidor? ou em sua hospedagem? Caso seja em um servidor seria assim $conectar = mysql_connect('endereco_do_banco','usuario_do_banco','senha_do_banco'); mysql_select_db('nome_do_banco'); a unica coisa que muda é que no endereço do banco em algumas hospedagens pode ser usado localhost e em outras eles tem um endereço separado. a senha e usuário é conforme seu banco de dados. Caso você esteja conectando a um banco que não seja em uma hospedagem ex: conectando do seu computador ao banco. Você precisa do endereço dele que não seja localhost pois assim sua maquina irá tratar como se você tenta-se acessar localmente. Espero ter ajudado.
  5. Na verdade eu queria que o select se moldase conforme os campos que o usuário seleciona ex: O usuário é obrigado a selecionar ao menos um campo pra evitar um full scan na tabela caso tenha muitos registros, mas caso o usuário busque por exemplo um carro da categoria 9, marca 10, veiculo com nome de civic ele irá buscar com esses 3 parametros e automaticamente monte o select. Eu alterei o código da seguinte forma mas o mesmo não funciona abaixo o código <?php class Anuncios { public function buscaRapida($cat,$marc,$veiculo,$anoMin,$anoMax,$valMin,$valMax,$buscar){ if($buscar != ""){ // verifica se o formulário está sendo enviado para evitar variáveis indefinidas $query = 'SELECT * FROM `anuncios` WHERE '; //concatena a variável $query com no minimo um parametro do formulário $queryAdd = $query . $cat == null ? + $cat = '' : + $cat = " `categoria` = $cat and ". $marc == null ? + $marc = '' : +$marc = " `marca` = $marc and "; $veiculo == null ? $veiculo = '' : $veiculo = " veiculo` like '%$veicQuery%' and "; $anoMin == null || $anoMax == null ? '' : " (`valor` >= $anoMin or `ano` <= $anoMax) and ". $valMin == null || $valmax == null ? '' : " (`valor` >= $valMin or `valor` <= $valMax) "; echo $queryAdd."<br />"; $execQuery = mysql_query($queryAdd); //var_dump($execQuery); } else { return; } } } ?> O código acima deveria montar o if conforme os campos fossem preenchidos. Ele não deverá retornar nada pelo método somente imprimira os valores da busca. Para ter uma idéia melhor o fórmulário é bem parecido com o deste site: http://www.webmotors.com.br/ Já tentei de tudo mas não funciona de forma alguma.
  6. O location do php nem sempre funciona dependendo de algumas hospedagens não é possivel usa-lo. Aconselho fazer um location em javascript e mandar imprimilo no html com o echo assim ele irá redirecionar indempendente do servidor que stá hospedado.
  7. O net beans não precisa ser configurado você simplesmente pode editar salvar e abrir no localhost. Mas caso você queira que ele execute no f6 você só precisa especificar a página inicial do servidor na criação do projeto. E outro detalhe você precisa estar com os arquivos dentro da pasta www.
  8. Bom espero estar postando na area correta desculpe caso não esteja pois sou novo no fórum. Bom estou desenvolvendo um website e estou com um problema não sou experte em php nem nada me viro como posso. Mas a questão é a seguinte o formulário é uma busca de veiculos está abaixo o código da index onde econtra-se o formulário: <form action="" method="get" name="buscaRapida"> <div class="block-3 ident-bot-1"> <p> <label>CATEGORIAS</label> <select name="cat"> <!--aqui--> <?php $comboCategorias = new Requisitar(); $comboCategorias->comboHtml('categorias','categoria') ?> </select> </p> <p> <label>MARCAS</label> <select name="marc"> <?php $comboMarcas = new Requisitar(); $comboMarcas->comboHtml('marcas', 'marca') ?> </select> </p> <p> <label>VEICULO</label> <input type="text" name="veiculo" /> <label>ANO MINIMO</label> <input type="text" name="anoMin" /> <label>ANO MÁXIMO</label> <input type="text" name="anoMax" /> <label>VALOR MINIMO</label> <input type="text" name="valMin" /> <label>VALOR MÁXIMO</label> <input type="text" name="valMax" /> <input type="hidden"name="buscar" value="1" /> </p> </div> <p><input class="button" value="BUSCAR" type="submit" ></p> </form> Bom este formulário envia para a própria página que em determinado ponto chama uma classe e um método, abaixo o código da classe: <?php class Anuncios { public function buscaRapida($cat,$marc,$veiculo,$anoMin,$anoMax,$valMin,$valMax,$buscar){ if($buscar != ""){ if($cat == "" || $marc != "" || $veiculo != "" || $anoMax != "" || $anoMin!= "" || $valMax != "" || $valMin != ""){ echo 'Você deve especificar no mínimo um valor na pesquisa <br />'; echo $cat." ".$marc." ".$veiculo." ".$anoMin." ".$anoMax." ".$valMin." ".$valMax; return; } else { if($cat != "") { $catQuery = " `categoria` = $cat and "; } else { $catQuery = ""; } if($marc != "") { $marcQuery = " `marca` = 10 and"; } else { $marcQuery = ""; } if($veiculo != "") { $veicQuery = " `veiculo` like '%$veicQuery%' and "; } else { $veicQuery = ""; } if($anoMin != "" || $anoMin != "") { $anoQuery = " (`ano` >= $anoMin or `ano` <=$anoMax) and "; } else { $anoQuery = ""; } if($valMin != "" || $valMax != "") { } else { $valQuery = " (`valor` >= $valMin or `valor` <= $valMax) ";$valQuery = ""; } $query = "SELECT * FROM anuncios WHERE"; echo $query."<br />"; $queryAdd = $query + $catQuery + $marcQuery + $veicQuery + $anoQuery + $valQuery; echo $queryAdd."<br />"; $execQuery = mysql_query($queryAdd); var_dump($execQuery); } } else { return; } } } ?> Bom ele não está retornando nada talvez seja alguma pequena coisa mas não consegui enxergar ainda. Se alguém puder dar uma luz sobre o erro me ajudara um monte. Desde já agradeço
×
×
  • Criar Novo...