verfaßt von MagicBird, Berlin, 26.05.2022, 15:11:48
Hallo Forum,
Seid tagen versuche ich mein Fehler zufinden.
Ich empfange mit einem NodeMCU und einer 433MHz RX meine Fernbedinung und lasse entsprechend dann den Status ändern.
Nun habe ich aber auch eine 2 Fernbedinung und wollte die Codeauslesen und dann aus der Tabelle nehmen und in die controltbl setzten.
aber mein Script schreibt die für dieTabelle ungekannten Codes nicht.
<?php
require_once '../include/config.include.php';
require_once '../include/mysql_connect.include.php';
require_once '../include/mqtt_connect.include.php';
require_once '../include/date_time.include.php';
require "../vendor/autoload.php";
if ($_GET['rxcode'] == true) {
$sql = "SELECT * FROM $controltbl WHERE oncode = ".$_GET['rxcode']."";
foreach ($pdo->query($sql) as $row)
if ($row['oncode'] == $_GET['rxcode']) {
$mqtt = new \PhpMqtt\Client\MQTTClient($server, $port, $clientId);
$mqtt->connect();
$mqtt->publish($row['mqtt_msg'] ,$row['mqtt_status_on'] , $row['mqtt_qos']);
$mqtt->close();
$sql = "UPDATE $controltbl SET status = '1' WHERE oncode = ".$_GET['rxcode']."";
$pdo->exec($sql);
$sql = "INSERT INTO $recievedtbl (id, codecs, date, time) VALUES (NULL, '".$_GET['rxcode']."', '$date', '$time')";
$pdo->exec($sql);
}
else {
$sql = "INSERT INTO $unknowtbl (id, code, date, time) VALUES (NULL, '".$_GET['rxcode']."', '$date', '$time')";
$pdo->exec($sql);
}
$sql = "SELECT * FROM $controltbl WHERE offcode = ".$_GET['rxcode']."";
foreach ($pdo->query($sql) as $row)
if ($row['offcode'] == $_GET['rxcode']) {
$mqtt = new \PhpMqtt\Client\MQTTClient($server, $port, $clientId);
$mqtt->connect();
$mqtt->publish($row['mqtt_msg'] , $row['mqtt_status_off'], $row['mqtt_qos']);
$mqtt->close();
$sql = "UPDATE $controltbl SET status = '0' WHERE offcode = ".$_GET['rxcode']."";
$pdo->exec($sql);
$sql = "INSERT INTO $recievedtbl (id, codecs, date, time) VALUES (NULL, '".$_GET['rxcode']."', '$date', '$time')";
$pdo->exec($sql);
}
else {
$sql = "INSERT INTO $unknowtbl (id, code, date, time) VALUES (NULL, '".$_GET['rxcode']."', '$date', '$time')";
$pdo->exec($sql);
}
}
else {
echo "Digga rxcode Variable setzten!";
}
require_once '../include/mysql_disconnect.include.php';
?>
Nun hatte ich das ganze Script schon in prepared Statmente umgebaut als pspad ein Fehlermeldung bracht. na super.
Warum vergleichen die Abfragen nicht richtig.
dankeLars
gesamter Thread: