Ir para conteúdo
Fórum Script Brasil

didonsom

Membros
  • Total de itens

    11
  • Registro em

  • Última visita

Posts postados por didonsom

  1. Galera descobri o erro ...

    O erro estava justamente no closeConexao(), pois a Conexão Pdo não é destruída automaticamente e eu estava destruindo da forma errada com ($this-> con) quando o correto deveria ser $self::$con.. por ser estática.. 

    estava destruindo de forma errada... 

     

        protected function closeConexao() {
          if(self::$con != null) self::$con = null;
        }
    
        public function __destruct() {
          $this->closeConexao();
        } 

     

  2. Olá Pessoal Boa tarde!

    Estou com um erro que não consigo identificar de jeito nenhum. Preciso realizar mais de uma consulta em classes diferentes em uma tela. O Meu problema está acontecendo quando a segunda consulta é executada, pois o e o Php retorna, Call to a member function prepare() on null por que o parâmetro de conexão que está em __construct está retornando null na segunda classe (peguei isso através de um var_dump) por isso que o "prepare" e consequentemente a consulta não funcionam.

    Queria saber o que estou fazendo de errado para não consegui consultar mais de uma classe na mesma tela. Estou usando PDO e banco mysql.

    Essa é a minha classe de conexão

    <?php
    // Classe que realiza a conexão com o banco de dados
    Class Conexao {
    
        private static $con;
    
        // Impede que a classe seja instanciada
        private function __construct() { }
    
        // Impede que a classe seja  clonada
        private function __clone() { }
    
        //Impede a utilização do Unserialize (que a variavel retorne o array original)
        private function __wakeup() { }
    
    
        public static function getConexao() {
            if (!isset(self::$con)) {
                try{ 
                   // parametros de conexão
                   $tipo = 'mysql:host=localhost;dbname=teste';
                   $user = 'root';
                   $senha = '';
    
    
                self::$con = new PDO( $tipo, $user, $senha, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_PERSISTENT => TRUE));
                self::$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                self::$con->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING);
    
    
            } 
              catch ( PDOException $erro ){
                     echo $erro;
                     // Encerrando a aplicação
                     exit();
                 }
              return self::$con;
        }
    
      }    // finalizando o getConexao  
    
    
    
       protected function closeConexao() {
          if($this->con != null) $this->con = null;
        }
    
        public function __destruct() {
          $this->closeConexao();
        } 
    
    
    } // finalizando a classe conexão
    
    ?>

    Essa é a classe na qual realizo a 1º consulta

    <?php
    
    // ARQUIVO DE CLASSE SLIDE_CRUD - UTILIZADA PARA ADICIONAR AS IMAGENS E CONSULTAS ATRAVÉS DO LOGIN NO PAINEL-ADMIN
    
    // chamando o arquivo de conexão
    
    class Slide_crud extends Slide{
    
        public static $conexaoPDO;
        // Instanciando a conexao  e a classe
        public function __construct(){
    
    
        $this->conexaopdo = conexao::getConexao();   
    
        }    
    
    //******************************************************************************************************//
    //*********************************************CONSULTA GERAL******************************************//
    //****************************************************************************************************// 
    
    
    public function consultaslide(){
        try{
    
        // realizando o SQL
        $sql = ('SELECT * FROM tbl_slide');
    
        // Realizando a conexão
    
        $prepare_sql = $this->conexaopdo->prepare($sql);
    
        $prepare_sql->execute();
    
        return $prepare_sql->fetchAll(PDO::FETCH_OBJ);
    
        } catch(exception $e){
        echo" $e erro ao realizar a consulta, se o problema persistir contate o administrador do sistema";
    
        }
    
    
    }
    
    }

    Essa é a classe na qual realizo a 2º consulta.

    <?php
    
        // Criando a Classe Seo_Crud - Classe responsável pelas interações com o banco de DADOS
    
    
    Class Seo_crud extends Seo{
    
    
        // parametro na qual será responsável por iniciar a conexão com o banco de dados
        static $conexaoPDO;  
    
        // função responsável por instanciar a classe em questão
        public function __construct(){
    
         // instanciando o parametro de conexão;
        $this->conexaopdo = Conexao::getConexao(); 
        }
    
    //******************************************************************************************************//
    //********************************************CONSULTA GERAL*******************************************//
    //****************************************************************************************************//
    
    public function consultaseo(){
     try{
             // consulta SQL
             $sql = ('SELECT * FROM tbl_seo');
    
             // repassando a consulta para a conexão
    
             $prepare_sql = $this->conexaopdo->prepare($sql);
    
             // executando a instrução
             $prepare_sql->execute();
    
             // retorno da função
             return $prepare_sql->fetchAll(PDO::FETCH_OBJ);
    
    
        }catch(PDOexception $e){
                print_r($e);
                echo"$e Atenção! Ocorreu um Erro ao realizar essa consulta de dados, tente novamente, se o problema persisitir contate o Administrador do Sistema";
                }
    
    
        } // fim function consulta
    
    }
    ?>

    aqui está os trechos na qual estou instanciando as classes no arquivo index.php para obter os dados através de um foreach.

    	<?php     
    			// instanciando a classe responsável pelo Crud e pelas Consultas
                $slide_crud = new Slide_crud();
    
                // repassando os parâmetros para a consulta e armazenando na variavel $result
                $result = $slide_crud->consultaslide();
    
                // percorrendo o array através de um laço para exibir as imagens
                foreach($result as $dados){
                ?>     
                 <div class="cycle-anterior" <a href="#" id="anterior"></a></div>
                <div class="cycle-proximo" <a href="#" id="proximo"></a></div>
                <img src="<?=$dados->caminho ?>" class="img-thumbnail" height="260" width="960" data-cycle-desc= <?=$dados->descricao?>>
                <?php
    
                }
    
    
    
    
    <?php 
    
       // instanciando a classe responsável pela consulta;
       $seo_crud = new Seo_crud();
      // realizando a consulta e armazenando os dados em uma variavel
       $result_seo = $seo_crud->consultaseo();
    
       if(!Empty($result_seo)){
            foreach($result_seo as $dados){
           echo "$dados->rodape_centro";
            }
       }
    
    ?>     

     

  3. Boa tarde!

     

    Resolvi o problema mudando a função que utilizei para validar os checks em jquery

    obtive através desse site, http://www.brandom.com.br/selecionar-todos-checkbox-com-jquery/

     

    ai resolvi o problema obrigado a todos, abaixo o codigo, caso alguém precise.

     

    diego   

     

    
    <!-- script que verifica se os checksbox  do form #pd deficiente - area candidato estao marcados / desmarcados -->
    <script language="javascript" type="text/javascript">
    
    <!-- desmarcando todos se o não possui estiver marcado -->
    $(function () {
       $('#checkAll').click(function () {
          var val = this.checked;
          $('input[name=dados').each(function () {
             $(this).prop('checked', false);
          });
       });
    });
    
    <!-- desmarcando o não possui estiver algum checkbox estiver marcado -->
    $(function () {
       $('input[name=dados]').click(function () {
          var val = this.checked;
          $('input[name=naopossui').each(function () {
             $(this).prop('checked', false);
          });
       });
    });
    </script>
    
    
    <!-- script que verifica se os checksbox  do form #dc checkhab - area candidato estao marcados / desmarcados -->
    <script language="javascript" type="text/javascript">
    
    <!-- desmarcando todos se o não possui estiver marcado -->
    $(function () {
       $('#naopossuihab').click(function () {
          var val = this.checked;
          $('input[name=checkhab').each(function () {
             $(this).prop('checked', false);
          });
       });
    });
    
    <!-- desmarcando o não possui estiver algum checkbox estiver marcado -->
    $(function () {
       $('input[name=checkhab]').click(function () {
          var val = this.checked;
          $('input[name=naopossuihab').each(function () {
             $(this).prop('checked', false);
          });
       });
    });
    </script>

     

  4. Olá Pessoal, Bom dia!

    Sou novo em programação web e estou com um problema. Estou desenvolvendo um sistema em php e utilizo o seguinte script abaixo que obtive na net para validar o click dos checkbox.

    Então por exemplo, se eu clicar no checkbox não possui, os demais checks serão desmarcados etc, até ai tudo bem a função funciona normalmente, coloco ela no meu <head></head> do form index.php

     

    <!-- script  utilizado para marcar e desmarcar os checksbox quando o usuario clicar em "não possui" ou em mais de uma opção -->
    <script type="text/javascript">
    
    	windows.onload = function() 
    {
    
    		//obter o click do checkbox  - DEFICIENTE
            document.getElementById("checkAll").onclick = function deficiente() 
    		{
                var form = document.getElementById("myForm"); //formulário
                //percorre todos os checkboxes e seta se está ou não checado, conforme o valor do check mandatório
                var checks = form.getElementsByTagName("input");
                for(var i=0; i<checks.length; i++) 
    			{
                    var chk = checks[i];
    		        if(chk.name == "dados[]")			
    	  			 chk.checked = false;
    
    			}
        		
    		}   
    </script>        
            
            

     

    O Problema é que eu precisei utilizar a mesma função para validar os checks de outro form e a função não funciona! O estranho é q se eu deixar somente uma função no head o procedimento funciona,  agora se eu colocar as 2 funções juntas no <head> o procedimento funciona somente em um form ou seja em uma tela.. 

    alguém sabe me dizer onde estou errando? será que preciso limpar alguma variavel? 

    
    <!-- script  utilizado para marcar e desmarcar os checksbox quando o usuario clicar em "não possui" ou em mais de uma opção -->
    <script type="text/javascript">
    
    	 window.onload = function() 
    {
    
    	 
       	   //obter o click do checkbox - DADOS COMPLEMENTARES - AREA CANDIDATO
    	  // script  utilizado para marcar e desmarcar os checks da DADOS COMPLEMENTARES #DC quando o usuario clicar em "não possui" ou em mais de uma opção
         document.getElementById("naopossuihab").onclick = function dadoscomplementares() 
    	{
                var formdadoscomplementares = document.getElementById("formdadoscomplementares"); //formulário
                //percorre todos os checkboxes e seta se está ou não checado, conforme o valor do check mandatório
                var checksdadoscomplementares = formdadoscomplementares.getElementsByTagName("input");
                for(var idados=0; idados<checksdadoscomplementares.length; idados++) 
    			{
                    var chkdadoscomplementares = checksdadoscomplementares[idados];
    		        if(chkdadoscomplementares.name == "checkhabilitacao[]")			
    	  			 chkdadoscomplementares.checked = false;
    			}
    
    	}
    
    	}
    
    </script>

     

    Obrigado

     

    DIEGO

     

  5. Olá Pessoal,

     

    Consegui resolver o problema dessa forma, segue código... e link onde obtive a resposta, caso alguém precise.

    if(count(@$_POST["dados"]) > 0) //verifica se algum checkbox foi enviado no form - O "@" é caso nenhum seja marcado não dar erro
    {
    	for($i=0;$i<count($_POST["dados"]);$i++) //loop nos chechkbox enviados
    	{
    		$campo = $_POST["dados"][$i];
    	
    		if ($campo == 'Auditiva'){ // verifica se o campo é igual se for, variavel recebe valor 
    		$auditiva = $campo;
    		}
    
    		if ($campo == 'Motora'){ // verifica se o campo é igual se for, variavel recebe valor 
    		$motora = $campo;
    		}
    
    		if ($campo == 'Mental'){ // verifica se o campo é igual se for, variavel recebe valor 
    		$mental = $campo;
    		}
    
    		if ($campo == 'Visual'){ // verifica se o campo é igual se for, variavel recebe valor 
    		$visual = $campo;
    		}
    	}
     }
    
    

    abraços,

    http://forum.imasters.com.br/topic/507641-percorrer-array/

     

    diego

  6. amigo,

    sou novo em php .. e não sei se é a forma otimizada.. mas poderia fazer dessa forma..

    para iniciar a sessão você realiza um select correto? pega a variavel desse select e realiza um mysql_fetch_assoc();

    tipo  $e =  mysql_fetch_assoc($resultado_select);

    ai você pega o resultado e repassa no update dessaforma 

    result_usuario = "UPDATE usuarios SET nome = '$nome_usuario' WHERE id = $e[id]";

    espero ter ajudado, abraços

  7. Olá Pessoal, Boa tarde!

    Essa é minha primeira postagem no fórum por esse fato, peço desculpas se postei no local errado.

    Bom, sou novo em programação web, e estou com dificuldade na seguinte situação:

    Eu tenho 4 checkboxs onde fui obrigado a colocar o mesmo nome "dados[]" em  virtude de uma função javascript para marcar e desmarcar os campos quando uma opção de nome "não possui" obter um click, até ai tudo bem essa parte está funcionando certinho..

    bom o meu problema está ocorrendo quando eu tento  realizar o $_POST para realizar o update na tabela do mysql...

    não estou conseguindo obter o valor dos campos separadamente para salvar no banco de dados,

    alguém tem alguma dica? podem me dizer onde estou errando? no código abaixo, obtenho somente o ultimo checkbox clicado.

     

    Aqui está o código dos checkbox .. o checkbox de nome "checkall" ao ser marcado, apaga as opções dos demais campos através de uma função javascript

    
    		<p><input type='checkbox' name='dados[$r]' id='dados'  value='Auditiva'>Auditiva</p>
    		<p><input type='checkbox' name='dados[$r]' id='dados2' value='Motora'>Motora</p>
    		<p><input type='checkbox' name='dados[$r]' id='dados3' value='Mental'>Mental</p>
    		<p><input type='checkbox' name='dados[$r]' id='dados4' value='Visual'>Visual</p>
    		<p><input type='checkbox' name='naopossui' id='checkAll' value='não Possui'>Não Possui</p>

     

    abaixo o código do $_POST

    
    // // // // // Portador Deficiencia  - UPDATE
    if(isset($_POST['pdu'])){
    
    $r=0;
    while($r[dados] <= 1){
    $check = isset($_POST['dados']) ? $_POST['dados'] : array();
    foreach($check as $valor) {
    $auditiva = $valor;	
    $i++;
    $r++;
    }
    }
    
    $naopossui = @$_POST['naopossui'];
    $descricao = @$_POST['descricao'];
    
    
    //while($e = mysql_fetch_assoc($s)){
    
    // realizando o update para preencher a tabela portdor_deficiencia, o id_candidato foi obtido através da variavel $qe que recebeu o select inicial na abertura da sessão.
    mysql_query("UPDATE portador_deficiencia SET 
    auditiva = '$auditiva',
    motora = '$auditiva',
    mental = '$mental',
    visual = '$visual',
    nao_possui = '$naopossui',
    descricao = '$descricao'
    WHERE id_candidato = '$qe[id_candidato]'");
    }                     
                         

     

    Obrigado a todos

     

    Diego

     

     

×
×
  • Criar Novo...