leimota Posted August 27, 2013 at 12:35 AM Report #522719 Posted August 27, 2013 at 12:35 AM (edited) Boa Noite, Estou neste momento a entrar um pouco em desespero para finalizar o meu projeto fim de curso, este projeto consiste na monitorizaçao de consumos e estados de uma casa automatizada, e a parte que falta acabar neste projeto é a monitorização de estados dos equipamentos, pois o meu curso é de electrónica e nunca tive base de dados nem programação em php, mas ultimamente tenho "partido pedra" nesta área e já consegui fazer toda a parte de monitorização de consumos assim como carregar todos os dados que preciso para uma base de dados, agora o meu problema prende-se aqui: Eu tenho registo numa base de dados de 1 em 1segundo do estado de equipamento em que regista a data e hora do mesmo, por exemplo : 2013-08-22 11:47:39 2013-08-22 11:47:40 2013-08-22 11:47:41 2013-08-22 11:47:42 2013-08-22 11:47:43 2013-08-22 11:47:44 2013-08-22 11:47:48 2013-08-22 11:47:49 2013-08-22 11:47:50 2013-08-22 11:47:51 2013-08-22 11:47:52 2013-08-22 11:47:53 2013-08-22 11:47:54 2013-08-22 11:47:55 Esta tabela mostra quando o estado do equipamento é 1 se repararem do segundo 44 até o 48 ele não mostra porque está desliga, agora o que eu gostava de fazer e não sei bem se dá para fazer isso pois tenho falta de conhecimento, era mostrar por exemplo: o equipamento ligou ás:11:47:39 e desligou ás: 11:47:45 o equipamento ligou ás:11:47:48 e desligou ás: 11:47:55 Agora a minha outra duvida que tenho é se consigo fazer este tratamento de dados com o mysql ou com php, também deixo aqui o codigo em php : <?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); date_default_timezone_set('Europe/London'); require_once("ligar_bd.php"); $skl="SELECT * FROM `t_registos2013` where `estado4`=1" ; $result = mysqli_query($con,$skl); echo "<table border='1'> <tr> <th> Data </th> <th>Hora </th> </tr>"; while($dados = mysqli_fetch_array($result)){ echo "<tr>"; echo "<td>" . $dados['data'] . "</td>"; echo "<td>" . $dados['hora'] ."</td>"; echo "</tr>"; } echo "</table>"; require_once("desligar_bd.php"); ?> Desculpem o tópico longo, e deixo aqui, desde já, o agradecimento por este grupo fantástico, que já me ajudou várias vezes mesmo sem ter pedido ajuda. 🙂 Edited August 27, 2013 at 12:36 AM by leimota
pikax Posted August 27, 2013 at 11:39 AM Report #522733 Posted August 27, 2013 at 11:39 AM faz isso com o php. Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
leimota Posted August 27, 2013 at 02:15 PM Author Report #522745 Posted August 27, 2013 at 02:15 PM Pois eu já tentei, algumas ideias em php, mas como o meu conhecimento em php ainda é pior do que mysql, não consigo mesmo desbloquear esta parte, por exemplo eu já tentei fazer um ciclo em que corria os dados que retirava da base dados e tentei fazer o seguinte, ele detectava 1 no estado então pegava na hora e ia varrendo os segundos se o proximo 1 fosse igual ao tempo actual mais 1 segundo quer dizer que estava ligava se houvesse uma interrupção neste tempo é porque ele tinha desligado e mostrava o tempo desligado. Mas depois alem de nem conseguir fazer este passo que nao deve ser muito complicado ainda tem a questão dos segundos e minutos e se tiver muito tempo ligado horas e dias e não sei mesmo como fazer. Mas como eu disse o meu conhecimento é muito pouco e ainda não consegui fazer um script que funcionasse sequer para mostrar alguma coisa parecida com o que quero, o unico que fiz e que mostra algo é este, por isso se tiver alguma disponibilidade e se interessar em me ajudar, eu agradecia muito.
pikax Posted August 27, 2013 at 02:51 PM Report #522753 Posted August 27, 2013 at 02:51 PM Acho que resolver este problema com SQL so' sera' uma perda de tempo, ja' que o MySQL nao e' propriamente uma linguagem de programacao. Se optares por PHP, e' melhor criares um topico novo na seccao de PHP, assim mais gente podera' ajudar-te. Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
leimota Posted August 27, 2013 at 03:07 PM Author Report #522756 Posted August 27, 2013 at 03:07 PM Ok, já fiz isso, obrigado por estares ajudar 😉
Recommended Posts