Ir para conteúdo

Arquivado

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

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...

Compartilhar este post


Link para o post
Compartilhar em outros 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..

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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...

Compartilhar este post


Link para o post
Compartilhar em outros 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..

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
×

Informação importante

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