thiagocs 0 Denunciar post Postado Agosto 23, 2006 Olá tenho 3 tabelas relacionadas, Localidades, Cidades e Bairros: Localidades id_localidade(PK) | nome_localidade Cidades id_cidade(PK) | id_localidade (FK) | nome_cidade Bairros id_bairro(PK) | id_localidade(FK) | id_cidade (FK) | nome_bairro Gostaria de inserir tudo em arrays (podem ser associativos) para montar combos dinâmicos e depois ler por cada localidade, alguém sabe fazer isso? Ex: $listaBairros = array($id_bairro, $nome_bairro); $listaCidades = array($id_cidade, $nome_cidade, $listaBairros); $listaLocalidades = array($id_localidade, $nome_localidade, $listaCidades); $sql = "SELECT id_localidade, nome_localidade FROM localidades ORDER BY nome_localidade ASC"; $resultado = mysql_query($sql); while($r = mysql_fetch_array($resultado) ){ $sql2 = "SELECT id_cidade, nome_cidade FROM cidades WHERE id_localidade=".$r['id_localidade']." ORDER nome_cidade ASC"; $resultado2 = mysql_query($sql2); while($r2 = mysql_fetch_array($resultado2){ $sql3 = "SELECT id_bairro, nome_bairro FROM bairros WHERE id_cidade=".$r2['id_cidade']." ORDER BY nome_bairro ASC "; $resultado3 = mysql_query($sql3); while($r3 = mysql_fetch_array($resultado3){ //insere } //insere mysql_free_result($resultado3); } //insere mysql_free_result($resultado2); } mysql_free_result($resultado); Compartilhar este post Link para o post Compartilhar em outros sites
thiagocs 0 Denunciar post Postado Agosto 23, 2006 Consegui fazer o código abaixo mas o tamanho do array está maior que devia mesmo assim não consigo imprimir direito. <? include("abre_conexao.php"); $sql = "SELECT id_localidade, nome_localidade FROM localidades"; $resultado = mysql_query($sql); $array = array(); $i=0; while($r = mysql_fetch_array($resultado) ){ $sql2 = "SELECT id_cidade, nome_cidade FROM cidades WHERE id_localidade=".$r['id_localidade']; $resultado2 = mysql_query($sql2); $array2 = array(); $i2=0; while($r2 = mysql_fetch_array($resultado2)){ $sql3 = "SELECT id_bairro, nome_bairro FROM bairros WHERE id_cidade=".$r2['id_cidade']; $resultado3 = mysql_query($sql3); $array3 = array(); $i3 = 0; while($r3 = mysql_fetch_array($resultado3)){ array_push($array3,array($i3=>$r3["id_bairro"],$r3["nome_bairro"])); $i3++; } mysql_free_result($resultado3); array_push($array2, array($i2=>$r2['id_cidade'],$r2['nome_cidade'],$array3)); $i2++; unset($array3); } mysql_free_result($resultado2); array_push($array, array($i => $r['id_localidade'],$r['nome_localidade'], $array2 )); $i++; unset($array2); } mysql_free_result($resultado); for($i=0; $i < count($array); $i++){ $arrayTemp = $array[$i]; echo $arrayTemp[0]." | ".$arrayTemp[1]."<br>\n"; if(is_array($arrayTemp[2])){ echo "<hr/>\n"; $array2 = $arrayTemp[2]; for($j=0; $j < count($array2); $j++){ $arrayTemp2 = $array2[$j]; echo " - ".$arrayTemp2[0]." / ".$arrayTemp2[1]."<br>\n"; unset($arrayTemp2); } } unset($arrayTemp); } include("fecha_conexao.php");?> Compartilhar este post Link para o post Compartilhar em outros sites
thiagocs 0 Denunciar post Postado Agosto 24, 2006 Alguém pode ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Agosto 24, 2006 Acho que ainda naum entendi, por isso ninguem respondeu ainda tb. Tente explicar com outras palavras Compartilhar este post Link para o post Compartilhar em outros sites
thiagocs 0 Denunciar post Postado Agosto 24, 2006 Já consegui resolver. <? include("abre_conexao.php"); $sql = "SELECT id_localidade, nome_localidade FROM localidades"; $resultado = mysql_query($sql); $array = array(); while($r = mysql_fetch_array($resultado) ){ $sql2 = "SELECT id_cidade, nome_cidade FROM cidades WHERE id_localidade=".$r['id_localidade']; $resultado2 = mysql_query($sql2); $array2 = array(); while($r2 = mysql_fetch_array($resultado2)){ $sql3 = "SELECT id_bairro, nome_bairro FROM bairros WHERE id_cidade=".$r2['id_cidade']; $resultado3 = mysql_query($sql3); $array3 = array(); while($r3 = mysql_fetch_array($resultado3)){ array_push($array3,array($r3["id_bairro"],$r3["nome_bairro"])); } mysql_free_result($resultado3); array_push($array2, array($r2['id_cidade'],$r2['nome_cidade'],$array3)); unset($array3); } mysql_free_result($resultado2); array_push($array, array($r['id_localidade'],$r['nome_localidade'], $array2 )); unset($array2); } mysql_free_result($resultado); /* Leitura dos Arrays */ for($i=0; $i < count($array); $i++){ $arrayTemp = $array[$i]; echo $arrayTemp[0]." | ".$arrayTemp[1]."<br>\n"; // verifica se tem cidades cadastradas if(is_array($arrayTemp[2]) && count($arrayTemp[2]) > 0 ){ $array2 = $arrayTemp[2]; for($j=0; $j < count($array2); $j++){ $arrayTemp2 = $array2[$j]; echo " - ".$arrayTemp2[0]." / ".$arrayTemp2[1]."<br>\n"; // verifica se tem bairros cadastradas if(is_array($arrayTemp2[2]) && count($arrayTemp2[2]) > 0 ){ $array3 = $arrayTemp2[2]; for($t=0; $t < count($array3); $t++){ $arrayTemp3 = $array3[$t]; echo " - ".$arrayTemp3[0]." -- ".$arrayTemp3[1]."<br>\n"; unset($arrayTemp3); } } unset($arrayTemp2); } } unset($arrayTemp); } include("fecha_conexao.php");?> Compartilhar este post Link para o post Compartilhar em outros sites