Acessar um array pegando seu índice dentro de uma classe através de outra página no PHP
Olá pessoal, estou precisando de um help !
Pois eu tenho uma classe assim:
DadosComboClasse.php
class DadosComboCidades {
private $conecta_banco;
public function __construct(){
$this->conecta_banco= new Conexao();
$this->conecta_banco->Conectar();
}
public $array = array();
public $imoveis_tipo;
public $cidade;
public $bairro;
public $bairro_id2;
public $idcidade;
public $negocios;
public $qtd;
public $bairro_id;
public $id_cidade;
public $id_tipo;
public $id_bairro;
public $nome_empresa_2;
public $nome_empresa_3;
public $nome_empresa_4;
public $nome_empresa_5;
public $titulo_cadastro;
public $creci;
public $facebook;
public $twitter;
public $linha_b;
public $sloga;
public $site;
public $sqlT_1;
public $sqlT_2;
public $sqlT_3;
public $sqlT_4;
public $row;
public $id='1';
function BuscarCidades(){
$result=$this->conecta_banco->banco;
$pega_cidade=new ComboCidades();=> instancio os ids ou arrays quando são requisitados tipo assim : finalidade ID:1 Tipo ID:3,9 (array)
$pega_cidade->PegarCidadeId();
$ativo='1';
ARRAYS ABAIXO:
$this->id_negocio=$pega_cidade->id_negocio;
$this->id_tipo=$this->id_cidade=$pega_cidade->id_tipo;
$this->id_cidade=$pega_cidade->id_cidade;
Acima eu pego os dados do array vindo da pagina combo_cidades.php
if($pega_cidade->id_negocio):
$negocio_array = explode(",",$pega_cidade->id_negocio);
if($pega_cidade->id_tipo):
$tipos_array = explode(",", $pega_cidade->id_tipo);
if($pega_cidade->id_cidade):
$cidades_array = explode(",", $pega_cidade->id_cidade);
foreach($negocio_array as $negocio):
foreach($tipos_array as $tipos):
foreach($cidades_array as $cidades):
$sqlT_1 = $result->prepare("SELECT i.id,t.tipo_nome,c.cidade,b.bairro,i.ativo FROM imoveis i 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 i.id_tipo_imovel IN ('".$tipos."') AND i.id_cidade IN ('".$cidades."') AND
i.ativo=? ORDER BY i.bairro DESC");
$sqlT_1->bind_param('s',$ativo);
$sqlT_1->execute();
$this->sqlT_1=$sqlT_1->get_result();
Acima com get_result eu gero os dados que preciso do array
abaixo são outras chamadas do sql que vou implementar na solução acima
$sqlT_2=$result->prepare("SELECT id, bairro,ativo FROM bairros WHERE id AND ativo=? ORDER BY bairro");
$sqlT_2->bind_param('s',$ativo);
$sqlT_2->execute();
$this->sqlT_2=$sqlT_2->get_result();
"'%".$negocio."%'";
$where = " i.ativo =? ";
if( $negocio) {
$where .="AND i.id_negocio_tipo LIKE ?";
}if( $tipos ) {
$where .=" AND i.id_tipo_imovel IN ('".$tipos."')";
}
if( $cidades ) {
$where .=" AND i.id_cidade IN ('".$cidades."')";
}
if($this->bairro_id2) {
$where .=" AND i.bairro IN ('".$this->bairro_id2."')";
}
$sqlT_3 = $result->prepare("SELECT i.id,i.ativo,n.tipo,b.bairro,t.tipo_nome,c.cidade,i.id_negocio_tipo, COUNT(b.bairro) AS Qtd 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." GROUP BY b.bairro HAVING COUNT( b.bairro) > 0 ORDER BY b.bairro ");
//EXECUTA A QUERY
$conta=$sqlT_3->num_rows();
$sqlT_3->bind_param('ss',$ativo,$negocio);
$sqlT_3->execute();
$this->sqlT_3=$sqlT_3->get_result();
endforeach;
endforeach;
endforeach;
endif;
endif;
endif;
}
}
Abaixo a classe combocidades.php
require_once("tags2.php");
//RECEBE PARÃMETRO
class ComboCidades{
private $conecta_banco;
public function __construct(){
$this->conecta_banco= new Conexao();
$this->conecta_banco->Conectar();
}
public $id_negocio;
public $id_tipo;
public $busca_cidade;
public $id_cidade;
public function PegarCidadeId(){
function filter( $str ){
return addslashes( $str );
}
function getPost( $key ){
return isset( $_GET[ $key ] ) ? filter( $_GET[ $key ] ) : null;
}
$this->id_negocio = getPost('id_negocio');
$this->id_tipo = getPost('id_tipo');
$this->id_cidade=getPost('id_cidade');
}
}
class ExibirBairros extends DadosComboCidades{
public function Mostrar(){
extract( $_GET, EXTR_OVERWRITE);
$busca_bairro=new DadosComboCidades();
$busca_bairro->BuscarCidades();
$busca_bairro->id_cidade;
if($busca_bairro->id_cidade==0):
echo "<div class='atencao'></div><div class='atencao_text'>Selecione uma Cidade para pesquisar por Bairros !</div> "."<br />";
endif;
echo "<div class='sel'></div>"."<br />";
/* MONTA CRITERIOS DE BUSCA */
//QUERY
echo '<br /><div class="botao-modal"><button type="button" class="botao_marcar" title="Todos" id="todos" onclick="marcardesmarcar();">Selecionar Todos</button>
</div>';
Aqui onde chamo os array já convertidos pelo foreach na classe DadosComboCidades.php
echo'<br /><br /><div style=" font-weight:bold; margin-left:30px;">'.$busca_bairro->imoveis_tipo.' (s) </div>';
echo'<br /><br /><div style=" font-weight:bold; margin-left:30px;">'.$busca_bairro->cidade.'</div>';
echo'<div class="form_modal"><form name="form1">'.'<br /><br />';
echo '<input type="checkbox" id="c'.$bairro.'" class="marcar" value="'.$bairro_id.'" name="bairro[]"/><label
for="c'.$bairro_id.'"><span></span></label> '.$bairro.' - '.$cidade.' ('.$qtd.') <br />';
//FECHA IF (row)
//PRINTA O RESULTADO
if($bairro_id):
echo FALSE;
else:
echo "<div class='atencao'></div><div class='atencao_text'>Não existem imóveis para essa Busca !</div> "."<br />";
echo'</form></div></b><br />';
endif;
}
}
Abaixo onde istancio e chamo a classe DadosComboCidades
$f=new ExibirBairros();
$f->Mostrar();
RESUMINDO:
O que acontece é que eu não consigo pegar o array no seu índice, ou seja , por exemplo se o id tipo for ID: 1 rola beleza a busca e a impressão dos dados mas se eu for buscar 2 informações no mesmo id tipo , assim => ID: array(5,9) , na outra página só consigo pegar o último id em vez de buscar 5,9 só busca o 9, por eu estar acessando o array de outra página , e pelo que entendi , acessando o array de outra página ele só percorre o último em vez do índice.
Mas se eu jogar todo código dentro da classe ai roda beleza , mas não quero misturar objeto com html (isso é má prática na programação), por isso estou remodelando meu código em POO
Se alguém tiver uma solução eu agradeço . :)Discussão (0)
Carregando comentários...