Jump to content
Sign in to follow this  
Jeovane Carvalho

Na consulta ao banco , de 2 ids só retorna o último id de um array

Recommended Posts

Olá pessoal, estou com um erro de consulta, tenho 2 ids que retorna de uma array vindos de um select de um formulário, eu consigo imprimir na tela por exemplo : os ids 1 e 9, ele aparece assim quando imprimo usando o foreach : 19, tudo junto, até aí sei que este é o procedimento do foreach para varrer o array mas eu precisaria pegar estes 2 ids para imprimir dados que virão através destes ids , por exemplo: eu pegando os ids 1 e 9 que são um de cada bairro , 1 seria Tatuapé e o id 2 P

 

 

 


php:

<?php
$negocio = strip_tags( $_POST['negocio'] );
$tipo   =  $_POST['tipo'] ;
$cidades  = strip_tags( $_POST['cidade'] );
$bairro  = $_POST['bairro'] ;
$valormin_= strip_tags( $_POST['valormin_'] );
$valormax_= strip_tags( $_POST['valormax_'] );
$codigo_  = strip_tags( $_POST['codigo_'] );

if( isset($_GET['cidade'] ) )  $cidade = strip_tags( $_GET['cidade'] );
if( isset($_GET['bairro'] ) )  $bairro = strip_tags( $_GET['bairro'] );
if( isset($_GET['tip'] ) )    $tipo = strip_tags( $_GET['tipo'] );
if( isset($_GET['negocio_'] ) ) $negocio = strip_tags( $_GET['negocio'] );
if( isset($_GET['valormin'] ) )$valormin = strip_tags( $_GET['valormin'] );
if( isset($_GET['valormax'] ) )$valormax = strip_tags( $_GET['valormax'] );
if( isset($_GET['codigo'] ) )  $codigo= strip_tags( $_GET['codigo'] );




echo $negocio;
echo $tipo ;


            




FOREACH DO POST CIDADE

if(isset($_POST["cidade"])){
 // Faz loop para as cidades //
foreach($_POST['cidade'] as $cidade){

echo $cidade;
}
}
FIM DO FOREACH POST CIDADE



AQUI É O FOREACH QUE LE O ARRAY DO POST BAIRRO

foreach($bairro as $bairros){






/* MONTA CRITERIOS DE BUSCA */              
$where = "i.ativo ='1'";
if ( !empty( $negocio ) ) {
$where .=" AND i.id_negocio_tipo='".$negocio."'";
}
if ( !empty( $tipo) ) {
$where .=" AND i.id_tipo_imovel='".$tipo."'";
}

if ( !empty( $cidade ) ) {
$where .=" AND i.id_cidade='".$cidade."'";
}

if ( !empty($bairros) ) {
$where[] .=" AND i.bairro='".$bairros."'";
}





//////// ESTE É O SQL QUE MONTA A PAGINAÇÃO DA BUSCA
$sql = $MySQLi->query("SELECT i.*, t.tipo_nome, n.tipo, c.cidade FROM imoveis
i LEFT JOIN negocio_tipo n ON (n.id = i.id_negocio_tipo)
LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel)
LEFT JOIN cidades c ON (c.id = i.id_cidade)
LEFT JOIN bairros b ON (b.id = i.bairro)
WHERE ".$where." ") or print(mysqli_error());
if (!isset( $_GET["pagina"] ) )
$pagina = 1;
else
$pagina = strip_tags( $_GET["pagina"] );
$max=8;
$inicio = $pagina - 1;
$inicio = $max * $inicio;
$total = mysqli_num_rows($sql);
/* calcula a quantidade de produtos sendo exibidos no momento */
$pgs = ceil($total / $max);
$de = $max * $pagina; 
if($pagina == $pgs) $de = $total;
$temp = $inicio + 1;


echo $bairros;
PARA IMPRIMIR OS ITENS VINDOS DO ARRAY COMO TESTE




//////////
$sql =$MySQLi->query("SELECT i.id, i.valor, i.foto_exibicao, i.quartos, i.garagem, i.codigo, t.tipo_nome, n.tipo AS negocio, c.cidade, c.uf, b.bairro FROM imoveis i
LEFT JOIN negocio_tipo n ON (n.id = i.id_negocio_tipo)
LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel)
LEFT JOIN cidades c ON (c.id = i.id_cidade)
LEFT JOIN bairros b ON (b.id = i.bairro)
WHERE  ".$where." ORDER BY valor ASC LIMIT ".$inicio.", ".$max."") or print(mysqli_error());






}

TO FECHANDO O FOREACH AQUI NA CHAVE ACIMA





if (!empty( $total )==1 ) {
echo "<br /><br /><div class='codigo_busca'><p><b>Resultado da Busca de Imóveis</b></p><p>Foram encontrados <b>".$total."</b> imóveis.</p>"."<br />";
echo "<p><span style='font-weight:bold; font-size:14px; color:#FF0;'><b>Página:</b></span> <span style='font-weight:bold; font-size:14px;'>".$pagina." de ".$pgs."</span></p></div><br /><br />";
while( $linha = mysqli_fetch_array( $sql ) ) {
$foto=$linha['foto_exibicao'];
$tipos=$linha['tipo_nome'];	
$tipo = $tipos;
$tipo  = strtolower( str_replace(" ", "-", strtr(utf8_decode(trim($tipo)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$bairros=$linha['bairro'];	
$bairro = $bairros;
$bairro = strtolower( str_replace(" ", "-", strtr(utf8_decode(trim($bairro)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$cidades=$linha['cidade'];	
$cidade = $cidades;
$cidade = strtolower( str_replace(" ", "-", strtr(utf8_decode(trim($cidade)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );



?>

Eu tentei também usar o implode mas quando eu tento imprimir as consultas aparece vazio, como se desse erro mas não aparece nenhum erro , e eu queria saber se seria por causa das ligações dos bancos dentro do sql que estou usando INNER JOIN, seria por isso que não consigo pegar os 2 ids usando implode, se alguém puder me ajudar seria grato...

Share this post


Link to post
Share on other sites

Quando eu uso o implode ele, e imprimo com var_dump, ele me mostra esse resultado:

152

string '42,1,9' (length=6)

Os ids estão chegando mas só não estou conseguindo fazer uma select no SQL com esses ids..

Share this post


Link to post
Share on other sites

Os select's já estão sendo realizados. Sua explicação sobre o que você quer está muito confusa.

 

Não coloque todo o código em apenas um code e nem escreva dentro dele como está fazendo. Separe seu código em bloco conforme a necessidade de informação que deve passar para nós.

 

Até o momento, o que eu pude compreender que você quer imprimir o nome do bairro conforme a seleção do bairro. Entretanto, o ID do bairro já está sendo utilizado nas queries.

 

Basta você imprimir o bairro, os joins (INNER JOIN) lhe facilitam isso.

Share this post


Link to post
Share on other sites

Primeiramente obrigado por responder Gabriel Heming, e me desculpa aí pelo o código gigantesco, mas a intenção foi para a minha pergunta não deixar dúvidas, e quanto ao meu problema é exatamente o que você disse, mas para deixar mais claro tipo assim lá no select cidade o usuário irá selecionar a cidade por exemplo São Paulo , e dentro do select bairros quando o usuário clicar irá abrir um modal com vários checkbox com os bairros definidos pela cidade escolhida , aí ele escolhe o bairro penha que seria o id 9 e o bairro tatuapé que seria o id 12, na hora que eu faço a busca mesmo usando o foreach e fechando a chave dele no final do script ele só imprime o primeiro id nos resultados e outro ele marca como bairro não encontrado, e quanto a sua dica não ficou muito claro, pois já uso o id para pegar esse bairros dentro do banco...

Share this post


Link to post
Share on other sites

Os select's já estão sendo realizados. Sua explicação sobre o que você quer está muito confusa.

 

Não coloque todo o código em apenas um code e nem escreva dentro dele como está fazendo. Separe seu código em bloco conforme a necessidade de informação que deve passar para nós.

 

Até o momento, o que eu pude compreender que você quer imprimir o nome do bairro conforme a seleção do bairro. Entretanto, o ID do bairro já está sendo utilizado nas queries.

 

Basta você imprimir o bairro, os joins (INNER JOIN) lhe facilitam isso.

Veja que editei e deixei o post mais claro..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Web.Developer
      { "message":"encontrado.", "resultados":[ { "transacao":"23424324324", }, { "transacao":"2342342432424", } ] } preciso montar um API assim na onde está transacao tem que vim do banco de dados, depois retorna para as pessoas a array dessa formula
    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      Todas as regras de negócio são implementadas como Stored Procedures.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.