Ansicht:   

#454376 php mysql, oh der schlauch ist lang (web.coding)

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:

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz