IoT php mysql nodemcu

di il
3 risposte

IoT php mysql nodemcu

Buonasera, premetto di essere un principiante del php. Sto cercando di far funzionare degli sript php trovati su un tutorial per passare dei valori ad una scheda Nodemcu attraverso una pagina php ed un database mysql.

Questo è il codice php:

Nome file: index.php


<?php
require_once("dbIoT.php");
if(isset($_POST['ledOn']))$sql="update led set led_status='1' where led_id='1'";
elseif(isset($_POST['ledOff']))$sql="update led set led_status='2' where led_id='1'";
if(isset($_POST['ledOn']) || isset($_POST['ledOff']))$result=$conn->query($sql);
?>
<html>
<head>
<title>Class Connect IoT Dashboard </title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="jumbotron"><h1>ClassConnect - IoT Application </h1></div>
<div class="container">
<h3 align="center">Controlling LED</h3>
<form action="led_update.php" method="post">
<div class="card-group">
<div class="card bg-secondary text-white">
<div class="card-body">
<input type="submit" style="font-size: 50;" class="btn btn-secondary btn-block" name="ledOn" value="Switch On LED"/>
</div>
</div>
<div class="card bg-info text-white">
<div class="card-body">
<input type="submit" style="font-size: 50;" class="btn btn-info btn-block" name="ledOff" value="Switch Off LED"/>
</div>
</div>
</div>
</form>
</div>

-----------------------------

Nome file: ledstatus.php

<?php
//Creating an array with name 'data' for JSON response
$data = array();
require_once("dbIoT.php");

if(isset($_GET['id']))
{
$id=$_GET['id'];
$sql="SELECT * FROM led where led_id='$id'";
$result=$conn->query($sql);
if($result->num_rows==0)
{
$data["success"] = 0;
$data["message"] = "No data on led found.";
echo json_encode($data);
}
else
{
$row=$result->fetch_assoc();
$data["ID"] = $row["led_id"];
$data["STATUS"] = $row["led_status"];
echo json_encode($data); // Show JSON response
}
}
else
{
$data["success"] = 0;
$data["message"] = $conn->error;
echo json_encode($data);
}
?>

-----------------------

Nome file: dbIoT.php

<?php
$servername = "localhost"; //Host Name
$username = "********"; // Database User Name
$password = "*********"; // Database User Password
$db="********"; // Database Name
// Create connection
$conn = new mysqli($servername, $username, $password, $db);
// Check connection and terminate the code if failed
if($conn->connect_error)die("Connection failed: " . $conn->connect_error);
?>

-----------------------
Qualcuno potrebbe gentilmente darmi una mano prima chi io impazzisca?
La pagina php non aggiona i dati sul db. Come mai?

Grazie

3 Risposte

  • Re: IoT php mysql nodemcu

    frankxphp ha scritto:


    Buonasera, premetto di essere un principiante del php. Sto cercando di far funzionare degli sript php trovati su un tutorial per passare dei valori ad una scheda Nodemcu attraverso una pagina php ed un database mysql.
    [...]
    Innanzitutto, leggi bene il Regolamento del forum e riporta il codice formattandolo così come indicato, usando l'apposito tag CODE.

    frankxphp ha scritto:


    Qualcuno potrebbe gentilmente darmi una mano prima chi io impazzisca?
    La pagina php non aggiona i dati sul db. Come mai?
    Specifica cosa intendi, perché feedback tipo "non funziona" sono poco indicativi e non consentono di ipotizzare alcun tipo di soluzione efficace, a meno che l'errore non sia così evidente, ma non è prassi copiare e incollare il codice per testarlo, non avendo peraltro a disposizione il tuo database.

    Cosa succede di preciso? Ottieni un errore? Non ci sono errori ma manca il record? Quali indagini hai già compiuto?
    Dettaglia meglio.

    Ciao!
  • Re: IoT php mysql nodemcu

    Ciao Alka, grazie per aver risposto. La connessione con il database sembrerebbe avvenire ma quando faccio click sui pulsanti "Switch On LED" - "Switch Off Led" sulla pagina index.php si apre la pagina ledstatus.php che restituisce il seguente risultato: {"success":0,"message":""} senza ovviamente cambiare il valore del campo "status_led" nell'id 1 nella tabella led.
    Sembrerebbe non trovi alcuna riga con l'id cercata o che comunque l'array $data non assuma il valore desiderato.
    Il database contiene una tabella di nome led con dentro quattro campi di cui il primo (id: 1 - chiave primaria - tipo: int(2) - extra: AUTO_INCREMENT)
  • Re: IoT php mysql nodemcu

    Ho in parte risolto tagliando il primo blocco di php che era nel file index.html ed incollandolo nel secondo file: ledupdate.php. Eh, brutta l'ignoranza!
    Ora il database viene aggiornato. Mi resta da capire come far funzionare il secondo blocco dove restituisce l'esito dell'operazione ....
Devi accedere o registrarti per scrivere nel forum
3 risposte