Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus App in Datenbank speichern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten aus App in Datenbank speichern

    Hallo, ich sitze seit ein paar Monaten an einer etwas aufwändigeren Ionic App, habe jetzt meine ersten Berührungen mit PHP, und stelle mich da leider etwas dumm an.

    Ich will Daten aus der App in Datenbank zwischenspeichern. Ich habe im Endeffekt eine Tabelle mit zwei Einträgen: Geschwindigkeit und Lenkwinkel. Beide besitzen eine ID, einen Namen und einen Wert.
    Der Wert sol durch die 4 Button (Beschleunigen, Bremsen, Links, Rechts) angepasst werden. Bei jedem Klick wird der Wert etwas höher oder niedriger und soll direkt weggeschickt werden.

    Hier die HTML:
    HTML-Code:
    <div class="rDataContainer">
    <div class="rDataBox rDataBox-1">
    <img ion-img src="assets/imgs/batterie.png" width="51%">
    </div>
    <div class="rDataBox rDataBox-1">
    <img ion-img src="assets/imgs/batterie.png" width="51%">
    </div>
    <div class="rDataBox rDataBox-2">
    <button type="submit" id="buttonUp">
    <img ion-img src="assets/imgs/button_up.png" width="35%" (click)="setSpeedPlus()">
    </button>
    </div>
    <div class="rDataBox rDataBox-1">
    <img ion-img src="assets/imgs/button_left.png" width="70%" (click)="setSteeringLeft()">
    </div>
    <div class="rDataBox rDataBox-1">
    <img ion-img src="assets/imgs/button_right.png" width="70%" (click)="setSteeringRight()">
    </div>
    <div class="rDataBox rDataBox-2">
    <img ion-img src="assets/imgs/button_down.png" width="35%" (click)="setSpeedMinus()">
    </div>
    <div class="rDataBox rDataBox-2"></div>
    <div class="rDataBox rDataBox-2">
    <img ion-img src="assets/imgs/button_stop.png" width="70%">
    </div>
    <div class="rDataBox rDataBox-2"></div>
    
    <form action="192.168.xxx.xxx/test/action.php" method="post" id="steuerungswerte" style="display:none">
    <input type="number" name="geschindigkeit" value = {{global.geschwindigkeit}}>
    <input type="number" name="lenkwinkel" value = {{global.lenkwinkel}}>
    </form>
    
    <script>
    $(document).ready(function () {
    $("#buttonUp").click(function () {
    $("#steuerungswerte").submit();
    });
    });
    </script>
    Die PHP:
    PHP-Code:
    <?php

    $host 
    "192.168.xxx.xxx";
    $user "user";
    $password "passwort";
    $dbname "db_name";


    $db_connection mysqli_connect($host$user$password$dbname);

    if (
    $db_connection ===false) {
    die(
    "Error: Cound not connect. " .mysqli_connect_error());
    }

    $geschwindigkeit $_POST["geschwindigkeit"]
    $lenkwinkel $_POST["lenkwinkel"]

    $sql "UPDATE steuerung SET wert='$geschwindigkeit' WHERE id=1 AND SET wert='$lenkwinkel' WHERE id=2";

    if(
    mysqli_query($db_connection$sql)) {
    echo 
    "Records were updated succesfully.";
    }

    else {
    echo 
    "Error: Could not able to execute $sql." .mysqli_error($db_connection);
    }

    mysqli_close(db_connection);
    Falls in der PHP ein Tipfehler drin ist, dann kommt der davon, dass ich die Datei schnell am anderen PC abgeschrieben habe.

    Wenn ich die PHP direkt im Browser ausführe, funktioniert sie einwandfrei und die Datei in der Datenbank wird geändert.
    Wenn ich aber versuche von der App aus zuzugreifen bekomme ich keine Fehlermeldung, auch in der Konsole scheint alles zu passen, aber der Wert wird nicht geändert.
    Ich denke es liegt entweder an der Post-Methode oder an der Übergabe selbst. Oder kann es daran liegen, dass ich noch eine externe Funktion aufrufe?

  • #2
    HTML-Code:
    <form action="192.168.xxx.xxx/test/action.php"
    https://de.wikipedia.org/wiki/Privat...Adressbereiche

    Mit einer APP aus einem mobilen Gerät bist du nicht im mehr automatisch im privaten Adressbereich.

    Kommentar


    • #3
      Zitat von protestix Beitrag anzeigen
      HTML-Code:
      <form action="192.168.xxx.xxx/test/action.php"
      https://de.wikipedia.org/wiki/Privat...Adressbereiche

      Mit einer APP aus einem mobilen Gerät bist du nicht im mehr automatisch im privaten Adressbereich.
      hm, ich kann aber problemlos über diese IP mit einer anderen PHP Daten aus der Datenbank in die App laden. Beide Geräte befinden sich außerdem im gleichen Lan und das mobile Gerät hat nichtmal eine Internetverbindung. Wie wäre es denn dann zu lösen?

      Kommentar


      • #4
        auch in der Konsole scheint alles zu passen
        Wie überprüfst du das denn? Lässt du dir die Rückgabe einfach anzeigen? Dann müsste da ja eine der Meldungen stehen. Oder das Script bricht halt vorher ab, aber du kannst dir ja an jeder Stelle mal was ausgeben lassen. Vielleicht auch ein Cache Problem? Lass dir am Anfang mal mit uniqid() was ausgeben, das sollte bei jedem Aufruf anders sein.
        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

        Kommentar


        • #5
          Funktioniert es wenn du im Formular "display:none" rausnimmst?

          Kommentar


          • #6
            Zitat von jonas3344 Beitrag anzeigen
            Funktioniert es wenn du im Formular "display:none" rausnimmst?
            leider auch nicht.

            chorn ich bekomme halt keinen Fehler, die Variable lasse ich mir ausgeben, sie steigt genauso, wie sie es soll. Nur an die Datenbank wird es nicht weitergeleitet. Ich habe nur keine Ahnung, wie ich mir durch das PHP etwas in die Konsole schreiben kann. Bin wie gesagt, da leider blutiger anfänger. Den Rest aus der App logge ich natürlich immer mit.

            Kommentar


            • #7
              Also du bekommst als Ausgabe:
              Code:
              Records were updated succesfully.
              ?

              Kommentar


              • #8
                Zitat von jonas3344 Beitrag anzeigen
                Also du bekommst als Ausgabe:
                Code:
                Records were updated succesfully.
                ?
                nein, das bekomme ich nur, wenn ich das script manuell im browser starte. in der Konsole kommt halt weder ein Fehler noch etwas anderes, nur der Wert geht systematisch hoch / runter wie er es in der anderen funktion soll

                Kommentar


                • #9
                  Dann schau mal in den error.log Deines Webservers. Da müsste es Fehler anzeigen.
                  Woher hast du den SQL-Syntax? Ich weiss ja nicht alles und theoretisch kann es sein, dass das irgendwie funktioniert, ich habe bisher noch nie gesehen, dass man mit einem UPDATE 2 Reihen updaten kann. IMHO muss man da 2 UPDATE Statements kreieren.
                  Zumindest funktioniert das bei einem kleinen Test bei mir nicht.

                  Kommentar


                  • #10
                    Zitat von jonas3344 Beitrag anzeigen
                    Dann schau mal in den error.log Deines Webservers. Da müsste es Fehler anzeigen.
                    Woher hast du den SQL-Syntax? Ich weiss ja nicht alles und theoretisch kann es sein, dass das irgendwie funktioniert, ich habe bisher noch nie gesehen, dass man mit einem UPDATE 2 Reihen updaten kann. IMHO muss man da 2 UPDATE Statements kreieren.
                    Zumindest funktioniert das bei einem kleinen Test bei mir nicht.
                    Da war ich mir auch nicht ganz sicher, aber ich habs auch mit einer Reihe probiert...

                    Kommentar


                    • #11
                      Dann musst du aber multi_query verwenden.

                      http://ch1.php.net/manual/de/mysqli....-statement.php

                      Kommentar

                      Lädt...
                      X