Ir para conteúdo

POWERED BY:

Arquivado

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

Marcelo Garbin

Forech com duas váriaveis

Recommended Posts

Obs => "Foreach" e não "Forech" como está no título, se tiver algum adm, pode alterar ai. Obrigado.

 

Buenas pessoal,

 

Preciso de uma ajudinha aqui...

 

Tenho um código que é cadastrado cidades e endereços separado e aninhandos por "/".

 

O cara vai la e tem dois campos, Cidade e Endereços os mesmos são gravados no BD.

Exemplo:

Cidades: Santos/São Paulo/Rio de Janeiro

Endereços: Rua dos Santistas, Rua da Praça/Rua Getúlio Vargas, Rua do Boca Juniors/Macaé, Av. do Comércio

 

Depois que tenho esses dados no BD eu pego eles tudo certo e faço o seguinte pra separar em array:

$municipios = explode('/',$cidade);
$enderecos  = explode('/',$endereco);

 

Agora que vem o Detalhe... Como faço pra por esses dados em uma tabela um do lado do outro.

Exemplo => Santos = Rua dos Santistas, Rua da Praça || São Paulo = Rua Getúlio Vargas, Rua do Boca Juniors || Rio de Janeiro = Macaé, Av. do Comércio

 

Como posso fazer isso com Foreach ou tem alguma outra alternativa?

 

P.S.: O número de cidades e endereços podem variar.

 

Desde já agradeço a todos. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
$municipios = explode('/', $cidade);
$enderecos = explode('/', $endereco);

if (is_array($municipios)) {
   foreach ($municipios as $Municipio => $keym) {
       if (is_array($enderecos)) {
           foreach ($enderecos as $Endereco => $keye) {
               echo $keym . "=" . $keye;
           }
       }
   }
}
?>

 

É só implementar com a query aí,

 

[]'s.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
$municipios = explode('/', $cidade);
$enderecos = explode('/', $endereco);

if (is_array($municipios)) {
   foreach ($municipios as $Municipio => $keym) {
       if (is_array($enderecos)) {
           foreach ($enderecos as $Endereco => $keye) {
               echo $keym . "=" . $keye;
           }
       }
   }
}
?>

 

 

É só implementar com a query aí,

 

[]'s.

 

Opa, tudo certo Leandro?

 

Cara obrigado pela ajuda, porém eu já estava fazendo desse jeito..

mas o que esta acontecendo é que, quando eu faço um "foreach" dentro de outro ele está duplicando tudo... exemplo se tenho 3 municipios e 3 endereços ele me retorna com 9 resultados, onde o certo seriam apenas 3.

 

O que será que pode ser isso?

 

Acho que desse jeito funciona:

 

//
$municipios = explode('/',$cidade);
$enderecos  = explode('/',$endereco);
//
$tam = sizeof($municipios);
for($i=0;$i<$tam;$i++){
 echo "$municipios[$i] - $enderecos[$i]<br>";
}

 

Que me dizem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que a sua estrutura está inflexível.

 

Se você tivesse uma tabela de estados (opcional), de cidades e de endereços, com chaves estrangeiras interligando-as você não precisaria de nada disso.

 

Na verdade, você quase não precisaria do PHP, 95% se resolveria diretamente pela query.

 

Não existe essa possibilidade de reestruturação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta colocar em um array e entao:

extract($nome-da-variavel-com-array);
foreach(array($cidade) as $dado1) //descriacao	 	
foreach(array($endereço) as $dado2)//qtde
for($i = 0; $i < count($n1); $i++) {
echo "cidade".$dado1[$i];
echo "endereço".$dado2[$i];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Respondendo ao Bruno Augusto,

 

Pois é... Pelo que entendi você pensou em ter 3 tabelas, com Estados, Cidades e Endereços, até daria pra pensar nisso, mas o usuário que vai cadastrar isso ele tem todos os endereços em uma tabela do Excel, acho eu que seria inviável criar tabela com endereços/cidades, até por que as vezes são 5 endereços pra cima que ele vai cadastrar de uma mesma cidade, eu não consegui pensar dessa forma ainda, não saberia como fazer. Como é cadastro simples acho que estaria ok, mas se tiver algum idéia pode me falar que eu posso ver se encaixa no projeto.

 

Tenta colocar em um array e entao:

extract($nome-da-variavel-com-array);
foreach(array($cidade) as $dado1) //descriacao	 	
foreach(array($endereço) as $dado2)//qtde
for($i = 0; $i < count($n1); $i++) {
echo "cidade".$dado1[$i];
echo "endereço".$dado2[$i];
}

 

Opa valeu pela ajuda, mas não consegui entender seu código, na verdade faze-lo funcionar... eu acho que por enquanto vou ficar com o "for" que eu havia feito, pois como vai ser linhas aninhadas não ira ter problemas. valeu obrigado.

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.