CHAT _
EletrônicaBR.com
collapse collapse

   DOWNLOAD -> Todos os arquivos de esquemas, bios e outros estão disponíveis no novo fórum ((Clique e pesquise agora.))

AtençaõÉ Assinante VIP do Eletrônicabr?-> Transfira agora sua assinatura para o novo fórum ((Clique AQUI))

   Atenção:
   - Estamos mantendo este fórum ainda online por pouco tempo, até que todas as assinaturas sejam migradas para o novo fórum.
 

Qual sua dúvida?


 

eletronicabr VIP
Celulares EletrncaBR

[Em Análise] Contador de Visualizações em PDO não estafuncionando  (Lida 147 vezes)

9 meses atrás
Lida 147 vezes
Offline

Koala Assistencia Tecnica Autor do Tópico


Bom Dia a todos.
Estou montando um sistema de contagem de visualização unico e por paginas com PDO. Peguei em um tutorial o codigo ja pronto com MYSQL e quando converti ele para PDO começou a dar problemas.
O novo codigo em PDO não esta criando a tabela no SQL, se a tabela do dia ja estiver com dados implantados ele continua adicionando as visualizações, mas se chega um novo dia ele não executa asfunções que deveria. Posto a baixo os dois codigos para vocês visualizarem

===============================================================
Codigo antigo com Conexão MYSQL
===============================================================

<?php



 require ('conexao.php'); // Pega os dados do Banco de Dados para Conexão

 //  Configurações do Script

 // ==============================

 $_CV['registraAuto'] = true;       // Registra as visitas automaticamente?

 $_CV['conectaMySQL'] = true;       // Abre uma conexão com o servidor MySQL?

 $_CV['iniciaSessao'] = true;       // Inicia a sessão com um session_start()?

 $_CV['servidor'] = $host;    // Servidor MySQL

 $_CV['usuario'] = $username;          // Usuário MySQL

 $_CV['senha'] = $pass;                // Senha MySQL

 $_CV['banco'] = $dbname;            // Banco de dados MySQL

 $_CV['tabela'] = 'visitas';        // Nome da tabela onde os dados são salvos

 // Verifica se precisa fazer a conexão com o MySQL

 if ($_CV['conectaMySQL'] == true) {

        $_CV['link'] = mysql_connect($_CV['servidor'], $_CV['usuario'], $_CV['senha']) or die("MySQL: Não foi possível conectar-se ao servidor [".$_CV['servidor']."].");

        mysql_select_db($_CV['banco'], $_CV['link']) or die("MySQL: Não foi possível conectar-se ao banco de dados [".$_CV['banco']."].");

  }

 // Verifica se precisa iniciar a sessão

 if ($_CV['iniciaSessao'] == true) {

        session_start();

 }

/**

 * Registra uma visita e/ou pageview para o visitante

 */

 function registraVisita() {

        global $_CV;

        $sql = "SELECT COUNT(*) FROM `".$_CV['tabela']."` WHERE `data` = CURDATE()";

        $query = mysql_query($sql);

        $resultado = mysql_fetch_row($query);

        // Verifica se é uma visita (do visitante)

        $nova = (!isset($_SESSION['ContadorVisitas'])) ? true : false;

        // Verifica se já existe registro para o dia

        if ($resultado[0] == 0) {

            $sql = "INSERT INTO `".$_CV['tabela']."` VALUES (NULL, CURDATE(), 1, 1)";

        } else {

            if ($nova == true) {

                $sql = "UPDATE `".$_CV['tabela']."` SET `uniques` = (`uniques` + 1), `pageviews` = (`pageviews` + 1) WHERE `data` = CURDATE()";

            } else {

                $sql = "UPDATE `".$_CV['tabela']."` SET `pageviews` = (`pageviews` + 1) WHERE `data` = CURDATE()";

            }

        }

    // Registra a visita

    mysql_query($sql);

    // Cria uma variavel na sessão

    $_SESSION['ContadorVisitas'] = md5(time());

 }

/**

 * Função que retorna o total de visitas

 *

 * @param string $tipo - O tipo de visitas a se pegar: (uniques|pageviews)

 * @param string $periodo - O período das visitas: (hoje|mes|ano)

 *

 * @return int - Total de visitas do tipo no período

 */

 function pegaVisitas($tipo = 'uniques', $periodo = 'hoje') {

    global $_CV;

    switch($tipo) {

        default:

        case 'uniques':

            $campo = 'uniques';

            break;

        case 'pageviews':

            $campo = 'pageviews';

            break;

    }

    switch($periodo) {

        default:

        case 'hoje':

            $busca = "`data` = CURDATE()";

            break;

        case 'mes':

            $busca = "`data` BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())";

            break;

        case 'ano':

            $busca = "`data` BETWEEN DATE_FORMAT(CURDATE(), '%Y-01-01') AND DATE_FORMAT(CURDATE(), '%Y-12-31')";

            break;

    }

    // Faz a consulta no MySQL em função dos argumentos

    $sql = "SELECT SUM(`".$campo."`) FROM `".$_CV['tabela']."` WHERE ".$busca;

    $query = mysql_query($sql);

    $resultado = mysql_fetch_row($query);

    // Retorna o valor encontrado ou zero

    return (!empty($resultado)) ? (int)$resultado[0] : 0;

 }

 if ($_CV['registraAuto'] == true) { registraVisita(); }

?>


===============================================================
Novo Codigo com PDO para Conexões:
===============================================================


<?php



require ('conexao.php');

 //  Configurações do Script

 // ==============================

 $_CV['registraAuto'] = true;       // Registra as visitas automaticamente?

 $_CV['conectaMySQL'] = true;       // Abre uma conexão com o servidor MySQL?

 $_CV['iniciaSessao'] = true;       // Inicia a sessão com um session_start()?

 $_CV['servidor'] = $host;    // Servidor MySQL

 $_CV['usuario'] = $username;          // Usuário MySQL

 $_CV['senha'] = $pass;                // Senha MySQL

 $_CV['banco'] = $dbname;            // Banco de dados MySQL

 $_CV['tabela'] = 'visitas';        // Nome da tabela onde os dados são salvos

 // Verifica se precisa fazer a conexão com o MySQL

 if ($_CV['conectaMySQL'] == true) {

    $_CV['link'] = new PDO('mysql:host='.$_CV['servidor'].';dbname='.$_CV['banco'].'', ''.$_CV['usuario'].'', ''.$_CV['senha'].'') or die("MySQL: Não foi possível conectar-se ao servidor [".$_CV['servidor']."].");

 }

 // Verifica se precisa iniciar a sessão

 if ($_CV['iniciaSessao'] == true) {

    session_start();

 }

/**

 * Registra uma visita e/ou pageview para o visitante

 */

 function registraVisita() {

    global $_CV;

    $sql = "SELECT COUNT(*) FROM `".$_CV['tabela']."` WHERE `data` = CURDATE()";

    $query = $_CV['link']->query ($sql);

    $resultado = $query->fetchAll();

    // Verifica se é uma visita (do visitante)

    $nova = (!isset($_SESSION['ContadorVisitas'])) ? true : false;

    // Verifica se já existe registro para o dia

    if ($resultado[0] == 0) {

        $sql = "INSERT INTO `".$_CV['tabela']."` VALUES (NULL, CURDATE(), 1, 1)";

    } else {

        if ($nova == true) {

            $sql = "UPDATE `".$_CV['tabela']."` SET `uniques` = (`uniques` + 1), `pageviews` = (`pageviews` + 1) WHERE `data` = CURDATE()";

        } else {

            $sql = "UPDATE `".$_CV['tabela']."` SET `pageviews` = (`pageviews` + 1) WHERE `data` = CURDATE()";

        }

    }

    // Registra a visita

    $_CV['link']->query ($sql);

    // Cria uma variavel na sessão

    $_SESSION['ContadorVisitas'] = md5(time());

 }



/**

 * Função que retorna o total de visitas

 *

 * @param string $tipo - O tipo de visitas a se pegar: (uniques|pageviews)

 * @param string $periodo - O período das visitas: (hoje|mes|ano)

 *

 * @return int - Total de visitas do tipo no período

 */

 function pegaVisitas($tipo = 'uniques', $periodo = 'hoje') {

    global $_CV;

    switch($tipo) {

        default:

        case 'uniques':

            $campo = 'uniques';

            break;

        case 'pageviews':

            $campo = 'pageviews';

            break;

    }

    switch($periodo) {

        default:

        case 'hoje':

            $busca = "`data` = CURDATE()";

            break;

        case 'mes':

            $busca = "`data` BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())";

            break;

        case 'ano':

            $busca = "`data` BETWEEN DATE_FORMAT(CURDATE(), '%Y-01-01') AND DATE_FORMAT(CURDATE(), '%Y-12-31')";

            break;

    }

    // Faz a consulta no MySQL em função dos argumentos

    $sql = "SELECT SUM(`".$campo."`) FROM `".$_CV['tabela']."` WHERE ".$busca;

    $query = $_CV['link']->query ($sql);

    $resultado = $query->fetchAll();

    // Retorna o valor encontrado ou zero

    return (!empty($resultado)) ? (int)$resultado[0] : 0;

 }

 if ($_CV['registraAuto'] == true) { registraVisita(); }

?>

2 meses atrás
Resposta #1
Offline

Christian David


poderia postar o arquivo error.log mostrando os erros quando o codigo em PDO é executado?

2 meses atrás
Resposta #2
Offline

Angelo Reis


Poderia organizar seu código usando a tag '[' code' ]' ['/code']' da ferramenta do fórum, seu código ficaria mais legivel, entretanto vejo que vc não criou nem uma classe para retorna uma conexão PDO ou mysqli.


xx
Identificar resistência em transformador HP(Em analise)

Iniciado por DsB

48 Respostas
11946 Visualizações
Última Mensagem: 3 anos atrás
por alan laguna
xx
Análise de Circuitos em CC

Iniciado por eanes

0 Respostas
694 Visualizações
Última Mensagem: 2 anos atrás
por eanes
xx
Análise de Circuitos em CA

Iniciado por eanes

0 Respostas
586 Visualizações
Última Mensagem: 2 anos atrás
por eanes
xx
Canal do Youtube - Análise de Defeitos em Televisores

Iniciado por denilsonaraujo

2 Respostas
587 Visualizações
Última Mensagem: um ano atrás
por DSystem
xx
Analise de Circuitos em CA (Romulo Albuquerque)

Iniciado por Vinetou

0 Respostas
234 Visualizações
Última Mensagem: 2 anos atrás
por Vinetou
 


Não encontrou o que estava procurando? Faça sua pergunta...


 

Patrocinador

Eletrnica Castro

* Top Poster do Mês

Nenhum membro foi encontrado.
Patrocinador

ftec
Arduino EletrncaBR