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?


 

Troca, Venda e Promoes
Arduino EletrncaBR

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

11 meses atrás
Lida 200 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(); }

?>

4 meses atrás
Resposta #1
Offline

Christian David


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

4 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
LG G5 SE [Análise]

Iniciado por FLAVIOTECH

1 Respostas
497 Visualizações
Última Mensagem: um ano atrás
por frcf
xx
Análise de Circuitos em CC

Iniciado por eanes

0 Respostas
734 Visualizações
Última Mensagem: 3 anos atrás
por eanes
smiley
DFI PE11-TC (Em analise)

Iniciado por DsB

16 Respostas
5687 Visualizações
Última Mensagem: 4 anos atrás
por DsB
xx
Analise de Esquemas

Iniciado por Miguel7875

1 Respostas
798 Visualizações
Última Mensagem: 2 anos atrás
por Alexandre Andrade
xx
Análise de Circuitos em CA

Iniciado por eanes

0 Respostas
640 Visualizações
Última Mensagem: 3 anos atrás
por eanes
 


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


 

eletronicabr VIP
Celulares EletrncaBR