Ir para conteúdo

POWERED BY:

Arquivado

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

danielswater

busca por checkbox

Recommended Posts

fala pessoal tudo certo?

seguinte, eu tenho em uma tela algumas opçoes para que o usuario marque e faça a busca em cima disso, como um filtro

o problema e que eu so consigo fazer mostrar o resultado se eu marcar as opções certas...por exemplo...eu escolho a CIDADE de SAO PAULO...escolho o produto MODELO 1 e escolho o tipo do produto como TIPO 1. ele me mostra o resultado, agora se eu escolho a CIDADE de SAO PAULO, MODELO 1 e no tipo de MODELO marco MODELO 1 e MODELO 2, ele nao me retorna nada

 

segue o cod

 


<?php
for ($i = 0; $i < count($total); $i++) {

   $query = mysql_query("SELECT * FROM anuncio WHERE marca = '$marca' AND modelo = '$modelo' AND tipo = " . "'" . $tipo[$i]
                   . "' AND genero = " . "'" . $genero[$i] . "' AND idade = " . "'" .
                   $idade[$i] . "' AND cidade = '$cidade';");
}
				$result = mysql_num_rows($query);

if ($result == 0) {
   echo "SUA BUSCA NÃO ENCONTROU NENHUM RESULTADO";
}
?>

 

alguem pode me dar uma ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

da um echo nesse teu select, verifica se ele ta recebendo os valores que tu ta mandando...e se for do jeito que tu falou, $modelo deveria ser um array, não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao no echo ele so me mostra a primeira opção que eu marquei....no caso TIPO 1

entao $modelo n e array nao pq ele nao e checkbox, e um jumpmenu

 

no caso os arrays sao so tipo, genero e idade

so falei como MODELO so para ilustrar

Compartilhar este post


Link para o post
Compartilhar em outros sites

bota todo teu código ae, talvez eu possa te ajudar melhor....

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

include 'conexao.php';

$estado = $_POST['passaValorEstado'];
$cidade = $_POST['recebeValorEstado'];
$marca = $_POST['passaValor'];
$modelo = $_POST['recebeValor'];
$tipo = $_POST['cbtipo'];
$genero = $_POST['cbgenero'];
$idade = $_POST['cbidade'];

switch ($marca) {

   case 1:
       $marca = "Alite";
       break;

   case 2:
       $marca = "Blitz";
       break;

   case 3:
       $marca = "Caloi";
       break;
}

if ($marca == "Alite" && $modelo = 1) {
   $modelo = "Alite modelo 1";
} else if ($marca == "Alite" && $modelo == 2) {
   $modelo = "Alite modelo 2";
} else if ($marca == "Alite" && $modelo == 3) {
   $modelo = "Alite modelo 3";
} else if ($marca == "Blitz" && $modelo == 1) {
   $modelo = "Blitz modelo 1";
} else if ($marca == "Blitz" && $modelo == 2) {
   $modelo = "Blitz modelo 2";
} else if ($marca == "Blitz" && $modelo == 3) {
   $modelo = "Blitz modelo 3";
} else if ($marca == "Caloi" && $modelo == 1) {
   $modelo = "Caloi modelo 1";
} else if ($marca == "Caloi" && $modelo == 2) {
   $modelo = "Caloi modelo 2";
} else if ($marca == "Caloi" && $modelo == 3) {
   $modelo = "Caloi modelo 3";
}

if (count($tipo) < count($genero) && count($genero) < count($idade)) {
   $total = count($tipo);
} else if (count($genero) < count($tipo) && count($tipo) < count($idade)) {
   $total = count($genero);
} else if (count($tipo) == count($genero) && count($genero) == count($idade)) {
   $total = count($tipo);
} 


for ($i = 0; $i < count($total); $i++) {

   $query = mysql_query("SELECT * FROM anuncio WHERE marca = '$marca' AND modelo = '$modelo' AND tipo = " . "'" . $tipo[$i]
                   . "' AND genero = " . "'" . $genero[$i] . "' AND idade = " . "'" .
                   $idade[$i] . "' AND cidade = '$cidade';");
}
$result = mysql_num_rows($query);

if ($result == 0) {
   echo "SUA BUSCA NÃO ENCONTROU NENHUM RESULTADO";
}

while ($linha = mysql_fetch_array($query)) {
   echo "<br />";
   echo "<br />";
   echo "MARCA: <b>" . $linha['marca'] . "</b><br />";
   echo "MODELO: <b>" . $linha['modelo'] . "</b><br />";
   echo "TIPO: <b>" . $linha['tipo'] . "</b><br />";
   echo "GENERO: <b>" . $linha['genero'] . "</b><br />";
   echo "IDADE: <b>" . $linha['idade'] . "</b><br />";
   echo "TELEFONE: <b>" . $linha['tel'] . "</b><br />";
   echo "CONTATO: <b>" . $linha['email_usuario'] . "</b><br />";
   echo "VALOR: <b>" . number_format($linha['valor'], 2, ',', '.') . "</b><br />";
   echo "DATA DO ANUNCIO: <b>" . date("d/m/Y", strtotime($linha['data_anuncio'])) . "</b><br />";
   echo "--------------------FOTOS---------------------" . "<br />";

   $busca_foto = mysql_query("SELECT * FROM album WHERE id_anuncio =" . "'" . $linha['id'] . "';");
   while ($foto = mysql_fetch_array($busca_foto)) {
       echo '<img src="album/' . $foto['foto'] . '"  width="80" height="80" style="margin-right:20px;"/>';
   }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

da um var_dump nesse POST pra ver as variáveis estão chegando...

 

isso \/

 

if ($marca == "Alite" && $modelo = 1) {
   $modelo = "Alite modelo 1";
} else if ($marca == "Alite" && $modelo == 2) {
   $modelo = "Alite modelo 2";
} else if ($marca == "Alite" && $modelo == 3) {
   $modelo = "Alite modelo 3";
} else if ($marca == "Blitz" && $modelo == 1) {
   $modelo = "Blitz modelo 1";
} else if ($marca == "Blitz" && $modelo == 2) {
   $modelo = "Blitz modelo 2";
} else if ($marca == "Blitz" && $modelo == 3) {
   $modelo = "Blitz modelo 3";
} else if ($marca == "Caloi" && $modelo == 1) {
   $modelo = "Caloi modelo 1";
} else if ($marca == "Caloi" && $modelo == 2) {
   $modelo = "Caloi modelo 2";
} else if ($marca == "Caloi" && $modelo == 3) {
   $modelo = "Caloi modelo 3";
}

 

pode ser facilmente substituído por isso \/

$marca_modelo = $marca." modelo ".$modelo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual variável que não ta aparecendo?? qual é a checkbox?

 

 

o que eu falei sobre a marca e modelo, é uma dica, o que tu fez necessita um processamento que pode ser economizado com o código que eu te passei... mas se tu quer fica com teus laços if e else, fica com eles

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao cara vou usar esa sua dica ai p eliminar os if e else

 

o que ta rolando e que quando eu vou fazer a consulta, ele so me retorna o primeiro checkbox marcado sacou? se eu marcar 2 por exemplo ele so vai colocar n query o primeiro marcado

 

ja to ficando louco com isso

 

o que eu quero fazer e um sistema de busca bem parecido com o do www.webmotors.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa trabalhar com arrays:

 

<input type="checkbox" name="opc[]" value="1" />
<input type="checkbox" name="opc[]" value="2" />
<input type="checkbox" name="opc[]" value="3" />

 

entendeu ?

ai você vai receber um array:

 

 

$_POST['opc'], com as posições: $_POST['opc'][0], $_POST['opc'][1] ...

se todos tiverem o mesmo name, e não for array, sobrescreve mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz assim:

 

me diz quais são seus check box, quais das variáveis ali acima, e da um var_dump nesse post, lá emcima no teu códio, antes dessas variáveis receberem escreve assim:

 

var_dump($_POST);

 

depois cola aqui e deixa eu ver

 

você precisa trabalhar com arrays:

 

<input type="checkbox" name="opc[]" value="1" />
<input type="checkbox" name="opc[]" value="2" />
<input type="checkbox" name="opc[]" value="3" />

 

entendeu ?

ai você vai receber um array:

 

 

$_POST['opc'], com as posições: $_POST['opc'][0], $_POST['opc'][1] ...

se todos tiverem o mesmo name, e não for array, sobrescreve mesmo.

 

exatamente nessa parte que eu iria chegar, falou tudo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Texai e Willian, os checks ja estao como array, veja:

 

table width="200">
 <tr>
   <td><label>
     <input type="checkbox" name="cbtipo[]" value="Lazer/Recreacao" id="cbtipo_0" />
     Lazer/Recreacao</label></td>
 </tr>
 <tr>
   <td><label>
     <input type="checkbox" name="cbtipo[]" value="Montain Bike" id="cbtipo_1" />
     Montain Bike</label></td>
 </tr>
 <tr>
   <td><label>
     <input type="checkbox" name="cbtipo[]" value="Ciclismo" id="cbtipo_2" />
     Ciclismo</label></td>
 </tr>
 <tr>
   <td><label>
     <input type="checkbox" name="cbtipo[]" value="Infantil" id="cbtipo_3" />
     Infantil</label></td>
 </tr>
 <tr>
   <td><label>
     <input type="checkbox" name="cbtipo[]" value="Dobravel" id="cbtipo_4" />
     Dobravel</label></td>
 </tr>
 <tr>
   <td><label>
     <input type="checkbox" name="cbtipo[]" value="Hibradas" id="cbtipo_5" />
     Hibradas</label></td>
 </tr>
</table>
<p><strong><em>GÊNERO</em></strong></p>
<table width="200">
 <tr>
   <td><label>
     <input type="checkbox" name="cbgenero[]" value="Masculino" id="cbgenero_0" />
     Masculino</label></td>
 </tr>
 <tr>
   <td><label>
     <input type="checkbox" name="cbgenero[]" value="Feminino" id="cbgenero_1" />
     Feminino</label></td>
 </tr>
</table>
<p><strong><em>FAIXA ETARIA</em></strong></p>
<table width="200">
 <tr>
   <td><label>
     <input type="checkbox" name="cbidade[]" value="Adulto" id="cbidade_0" />
     Adulto</label></td>
 </tr>
 <tr>
   <td><label>
     <input type="checkbox" name="cbidade[]" value="Infantil" id="cbidade_1" />
     Infantil</label></td>
 </tr>
</table>

 

e as variaveis que sao array :

$tipo = $_POST['cbtipo'];
$genero = $_POST['cbgenero'];
$idade = $_POST['cbidade'];

 

agora quando eu dei um echo var_dump() no checkbox $tipo = $_POST['cbtipo'];

so me mostrou o primeiro check que eu selecionei

Compartilhar este post


Link para o post
Compartilhar em outros sites

puts eu acho que descobri o problema, acho que a query

eu fiz essa query no mysql query browser e ela me trouxe o resultado esperado

 

SELECT * FROM anuncio WHERE marca = 'Blitz' and (tipo = 'Lazer/Recreacao' OR tipo = 'Montain Bike') and cidade = 'Acrelandia' 

 

agora so esta sendo problema montar isso com o php

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://tecnologoanalisedesistema.blogspot.com/2011/10/como-enviar-varios-checkbox-via-post.html

 

 

tem que ter o mesmo nome cara, e além disso, vai ir por posições, ou seja, $_POST['cbtipo'][1], $_POST['cbtipo'][2],$_POST['cbtipo'][3],etc...

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.