Resultado da diferença datetime não aparece no banco MYSQL PHP

3 respostas
php
A

Olá pessoal tive pesquisando mas nada, próximo a resolução do meu problema, por isso resolvi dar uma passada por aqui, sendo breve. Ao inserir as informações, preenche o formulário na web normalmente e os gráficos,… com exceção daquele que aponta “total_horas” INDICA null .
As informações com “total_horas” não é preenchido no BD porem na WEB sim. Aí vão meus questionamentos: Porque as infos são preenchidas na web e no BD não. ( ); Haveria por exe: setar um default na tabela sql, para as datas inicio e fim retornando a diferença?.. evitando esta falha no BD?

O que pretendo? Que o resultado apareça em “total_horas” no DB. Alguém pode me ajudar?

<?php 

                   include 'PieChart/basedado.php';

                   
                   $con = Database::connect();
                   
                  $sql =  "SELECT `id`,`site`,`inicio`,`fim`,`equipamento`,`total`, timediff(`fim`, `inicio`) AS `total_horas` FROM `programacao` WHERE 1 ";

                 

//$sql = 'SELECT * FROM programacao ORDER BY id DESC';
				   

                   foreach ($con->query($sql) as $row) {
                            echo '<tr>';
                            echo '<td>'. $row['site'] . '</td>';
                            echo '<td>'. date ('d-m-Y H:i:s ', strtotime($row['inicio'])) . '</td>';
                            echo '<td>'. date ('d-m-Y H:i:s ', strtotime($row['fim']))  . '</td>';
                            echo '<td>'. $row['equipamento'] . '</td>';
                            echo '<td>'. $row['total'] . '</td>';
                            echo '<td>'. $row['total_horas'] . '</td>';
                         
                           
                            echo '<td width=250>';
                            echo '<a class="btn btn-warning" href="PieChart/read.php?id='.$row['id'].'"><i class="fa fa-th-list" aria-hidden="true"></i></a>';
                            echo '&nbsp;';
                            echo '<a class="btn btn-success" href="PieChart/update.php?id='.$row['id'].'"><i class="fa fa-pencil" aria-hidden="true"></i></a>';
                            echo '&nbsp;';
                            echo '<a class="btn btn-danger" href="PieChart/delete.php?id='.$row['id'].'"><i class="fa fa-trash" aria-hidden="true"></i></a>';
                            echo '</td>';
                            echo '</tr>';


                            

                   }
                   Database::disconnect();
                  ?>`

3 Respostas

peczenyj

realiza esse select na mão.

ve se da algum warning. as vezes tem algum detalhe que escapa a gente…

A

Blz peczenyj.

Já fiz e retorna os valores, ai ta o prob… quando eu forço dá certo, mas o objetivo do php é que seja dinâmico o que não está acontecendo, mas fiz um vídeo https://youtu.be/EruuMih3WWY da uma consultada. outro https://www.youtube.com/watch?v=MwZHYP8FsfA

peczenyj

timediff pode retornar NULL se um dos campos for null. veja se é o que acontece

também existe mum limite maximo, algo menor que 1000 horas.

não sei mais como ajudar

Criado 25 de outubro de 2016
Ultima resposta 26 de out. de 2016
Respostas 3
Participantes 2