Ir para conteúdo

POWERED BY:

Arquivado

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

Jeovane Carvalho

Acessar um array pegando seu índice dentro de uma classe através de outra página no PHP

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

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