Ir para conteúdo
  • Cadastre-se

Contador de Visualizações em PDO não estafuncionando

Avalie este tópico:


Koala Assistencia Tecnica

Posts em destaque

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(); }

 

?>

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois...
  • 4 semanas depois...

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restaurar formatação

  Apenas 75 emoticons máximos são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir apenas como um link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Você não pode colar imagens diretamente. Envie ou insira imagens do URL.

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Criar Novo...