Ir para conteúdo

POWERED BY:

Arquivado

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

bnogueira02

Agendamento de publicação com PHP

Recommended Posts

Desculpa vou explicar novamente.

 

Esse IF:

if (strtotime($dataAgora) <= strtotime($data_banco)) {
                    echo 'entrei';
                    $altMatDTO->setOp(4);
                    $altMatDTO->setId($linhas->getId());
                    $materiaDAO->modificarMateria($altMatDTO);
                }

Retornou isso:

Data Agora 07/11/2014 16:51:34
Data Banco 07/11/2014 16:33:00
Data Agora STRTOTIME 1405108294
Data Banco STRTOTIME 1405107180

 

E não realizou a alteração da coluna status no banco de dados.

 

 

 

Já esse IF:

if (strtotime($dataAgora) <= strtotime($data_banco)) {
                    echo 'entrei';
                    $altMatDTO->setOp(4);
                    $altMatDTO->setId($linhas->getId());
                    $materiaDAO->modificarMateria($altMatDTO);
                }

Retornou isso:

 

Data Agora 07/11/2014 16:52:15
Data Banco 07/11/2014 16:33:00
Data Agora STRTOTIME 1405108335
Data Banco STRTOTIME 1405107180

Warning: strtotime() expects parameter 1 to be string, object given in C:\xampp\htdocs\cmsbr\CTR\materiaCTR.php on line 132

Warning: strtotime() expects parameter 1 to be string, object given in C:\xampp\htdocs\cmsbr\CTR\materiaCTR.php on line 132
entrei

 

E modificou a tabela porem ele sempre entra no if independente da data/hora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse IF:

if ($dataAgora <= $data_banco) {
    echo 'entrei';
    $altMatDTO->setOp(4); 
    $altMatDTO->setId($linhas->getId()); 
    $materiaDAO->modificarMateria($altMatDTO); 
} 

Retornou isso:

Data Agora 07/11/2014 16:51:34
Data Banco 07/11/2014 16:33:00
Data Agora STRTOTIME 1405108294
Data Banco STRTOTIME 1405107180

E não realizou a alteração da coluna status no banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso por que Data Agora 07/11/2014 16:51:34 é maior que Data Banco 07/11/2014 16:33:00.

 

Estenda a data do banco de dados e fale sobre o resultado novamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei de notar um erro na data_banco. O erro ela ta pendo a msm a hora do servidor

function publicar() {
        try {
            $materiaDAO = new materiaDAOIMP();
            $materiaDTO = new materiaDTO();
            $materiaDTO->setOp(3);
            $dados = $materiaDAO->pesquisarMateria($materiaDTO);

            foreach ($dados as $linhas) {
                $altMatDTO = new materiaDTO();
                $dataAgora = new DateTime('now');
                $data_banco = new DateTime($linhas->getAgendamento());
                //$data_banco = DateTime::createFromFormat('Y-m-d H:i:s', $linhas->getAgendamento());

                echo 'Data Agora ' . $dataAgora->format('d/m/Y H:i:s') . '<br/>';
                echo 'Data Banco ' . $data_banco->format('d/m/Y H:i:s') . '<br/>';
                echo 'Data Agora STRTOTIME ' . strtotime($dataAgora->format('d/m/Y H:i:s')) . '<br />';
                echo 'Data Banco STRTOTIME ' . strtotime($data_banco->format('d/m/Y H:i:s')) . '<br />';
               
                if ($dataAgora <= $data_banco) {
                    echo 'entrei';
                    $altMatDTO->setOp(4);
                    $altMatDTO->setId($linhas->getId());
                    $materiaDAO->modificarMateria($altMatDTO);
                }
            }

            return true;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
            return false;
        }
    }

Data Agora 07/11/2014 17:32:48
Data Banco 07/11/2014 17:32:48
Data Agora STRTOTIME 1405110768
Data Banco STRTOTIME 1405110768
entrei

Compartilhar este post


Link para o post
Compartilhar em outros sites
function publicar() {
        try {
            $materiaDAO = new materiaDAOIMP();
            $materiaDTO = new materiaDTO();
            $materiaDTO->setOp(3);
            $dados = $materiaDAO->pesquisarMateria($materiaDTO);

            foreach ($dados as $linhas) {
                $altMatDTO = new materiaDTO();
                $dataAgora = new DateTime('now');
                $data_banco = new DateTime($linhas->getAgendamento());
                //$data_banco = DateTime::createFromFormat('Y-m-d H:i:s', $linhas->getAgendamento());

                echo 'Data Agora ' . $dataAgora->format('d/m/Y H:i:s') . '<br/>';
                echo 'Data Banco ' . $data_banco->format('d/m/Y H:i:s') . '<br/>';
                echo 'Data Agora STRTOTIME ' . strtotime($dataAgora->format('d/m/Y H:i:s')) . '<br />';
                echo 'Data Banco STRTOTIME ' . strtotime($data_banco->format('d/m/Y H:i:s')) . '<br />';

                if ($linhas->getId() != "" || $linhas->getStatus()) {
                    echo 'entrei2';
                    if (strtotime($dataAgora->format('d/m/Y H:i:s')) >= strtotime($data_banco->format('d/m/Y H:i:s'))) {
                        echo 'entrei1';
                        $altMatDTO->setOp(4);
                        $altMatDTO->setId($linhas->getId());
                        $materiaDAO->modificarMateria($altMatDTO);
                    }
                }
            }

            return true;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
            return false;
        }
    }

Pessoal consegui assim. Funcionou. Obrigado ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Revivendo o tópico, pois não achei necessário criar outro.

 

Bom após a parte de matérias terminadas comecei a de publicidade.

 

E encontrei a seguinte questa.

 

Tenho 2 funções uma para ativar e outra para inativar a publicidade, mas acaba gerando um loop e a publicidade sempre fica inativa. Ai vai o código.

 public function publicarPublicidade() {
        try {
            $publicidadeDAO = new publicidadeDAOIMP();
            $publicidadeDTO = new publicidadeDTO();
            $publicidadeDTO->setOp(4);
            $publicidadeDTO->setStatus(1);
            $dados = $publicidadeDAO->pesquisarPublicidade($publicidadeDTO);
            
            foreach ($dados as $linhas) {
                $altPubDTO = new publicidadeDTO();
                $dataAgora = new DateTime('now');
                $data_banco = new DateTime($linhas->getDataini());
                //$data_banco = DateTime::createFromFormat('Y-m-d H:i:s', $linhas->getAgendamento());
                 $cData1 = strtotime($dataAgora->format('d/m/Y H:i:s'));
                 $cData2 = strtotime($data_banco->format('d/m/Y H:i:s'));
                if ($linhas->getId() != "" || $linhas->getStatus() != 0) {
                    if ($cData1 >= $cData2) {
                        $altPubDTO->setOp(4);
                        $altPubDTO->setStatus(0);
                        $altPubDTO->setId($linhas->getId());
                        $publicidadeDAO->modificarPublicidade($altPubDTO);
                        print_r($dados);
                    }
                }
            }

            return true;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
            return false;
        }
    }
    public function inativarPublicidade() {
        try {
            $publicidadeDAO = new publicidadeDAOIMP();
            $publicidadeDTO = new publicidadeDTO();
            $publicidadeDTO->setOp(4);
            $publicidadeDTO->setStatus(0);
            $dados = $publicidadeDAO->pesquisarPublicidade($publicidadeDTO);
            
            foreach ($dados as $linhas) {
                $altPubDTO = new publicidadeDTO();
                $dataAgora = new DateTime('now');
                $data_banco = new DateTime($linhas->getDataini());
                //$data_banco = DateTime::createFromFormat('Y-m-d H:i:s', $linhas->getAgendamento());
                 $cData1 = strtotime($dataAgora->format('d/m/Y H:i:s'));
                 $cData2 = strtotime($data_banco->format('d/m/Y H:i:s'));
                if ($linhas->getId() != "" || $linhas->getStatus() != 0) {
                    if ($cData2 < $cData1) {
                        $altPubDTO->setOp(4);
                        $altPubDTO->setStatus(1);
                        $altPubDTO->setId($linhas->getId());
                        $publicidadeDAO->modificarPublicidade($altPubDTO);
                        print_r($dados);
                    }
                }
            }

            return true;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
            return false;
        }
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites


public function publicarPublicidade() {

try {

$publicidadeDAO = new publicidadeDAOIMP();

$publicidadeDTO = new publicidadeDTO();

$publicidadeDTO->setOp(4);

$dados = $publicidadeDAO->pesquisarPublicidade($publicidadeDTO);

$dataAgora = new DateTime('now');

 

 

foreach ($dados as $linhas) {

$altPubDTO = new publicidadeDTO();

$dataini_banco = new DateTime($linhas->getDataini());

$datafim_banco = new DateTime($linhas->getDatafim());

$dataAtual = strtotime($dataAgora->format('d/m/Y'));

$dataInicial = strtotime($dataini_banco->format('d/m/Y'));

$dataFinal = strtotime($datafim_banco->format('d/m/Y'));

 

if ($linhas->getId() != "" && $linhas->getStatus() == 1 && $dataAtual >= $dataInicial && $dataAtual < $dataFinal) {

$altPubDTO->setOp(4);

$altPubDTO->setStatus(0);

$altPubDTO->setId($linhas->getId());

$publicidadeDAO->modificarPublicidade($altPubDTO);

 

} else if ($linhas->getId() != "" && $dataAtual > $dataFinal) {

$altPubDTO->setOp(4);

$altPubDTO->setStatus(1);

$altPubDTO->setId($linhas->getId());

$publicidadeDAO->modificarPublicidade($altPubDTO);

}

}

 

 

return true;

} catch (Exception $exc) {

echo $exc->getTraceAsString();

return false;

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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