Mit Ajax MySQL Datenbank Abfragen

  • Hallo!


    Ich würde gerne eine MySQL Datenbank per Ajax abfragen (alle 20 Sekunden), vergleichen ob sich etwas zu den momentan angezeigten Werten geändert hat und dann gegebenenfalls die neuen Werte anzeigen.


    Wie mache ich das am besten?


    Vielen Dank schonmal im Voraus :)

  • Läuft Serverseitig auf Php, ist eine einfach MySQL Abfrage, nichts besonderes. Ich kann Html und Php, kenne mich aber mit Ajax null aus.

  • Hallo,


    na ja, zu AJAX gibt es ca. 1 Millionen Beispiele im Netz, davon wirst du sicher auch eins finden, wenn du die Suchmaschine deiner Wahl bemühst. Oder erwartest du, dass dir einer fertigen Code hier präsentiert?


    AJAX ist eigentlich auch der ältere Weg (funktioniert aber immer noch), der aktuelle Weg wäre die fetch-API. Einstieg bei MDN: https://developer.mozilla.org/…API/Fetch_API/Using_Fetch


    Gruß, noisefloor

  • Ich will natürlich keinen fertigen Code, ich habe aber bisher noch kein Beispiel im Netz gefunden, bei dem die ab gefragten Werte vor der Ausgabe verglichen werden.

  • Dann lass das doch weg und zeig die immer an. Wenn sie sich nicht geändert haben, macht es doch eh keinen Unterschied.

  • Hallo,


    thegreatdev : wenn die Werte sich unregelmäßig ändern kannst du das ganze auch umdrehen und die Werte vom Server zum Client pushen, z.B. via Websocket. Aber der Weg wie von @__deets__ vorgeschlagen ist weniger Aufwand: periodisch abfragen und die Ausgabe aktualisieren. Auch dann, wenn aktualisieren heißt, dass der aktuelle Wert einfach stehen bleibt, weil immer noch aktuell.


    Gruß, noisefloor

  • Dann lass das doch weg und zeig die immer an. Wenn sie sich nicht geändert haben, macht es doch eh keinen Unterschied.

    Doch macht es. Ich zeige unter anderem ein Bild an, ohne Vergleich flackert dass dann bei jeder Abfrage kurz.

  • Wundert mich, aber wenn es so ist - dann wirst du hier trotzdem nach aktuellem Stand keine Hilfe bekommen können. Denn dazu ist deine ganze Beschreibung viel zu vage. Das JavaScript werte vergleichen kann, ist klar. Wie man das im konkreten aber macht, kann man ohne konkreten Code und Datenstrukturen, die von Server kommen, nicht beantworten.

  • Ich denke die kommen schon an? Es flackert doch angeblich ohne Vergleich?

  • tu das bloss nicht - Kanonen auf Spatzen.

    Hast Du Erfahrung mit AngularJS (1.7.x) oder wie kommst Du zu der Meinung?


    Das Beispiel aus dem obigen Link ist vielleicht 20 Zeilen lang und die JavaScript Library angular.min.js ist 173 kB groß. Mehr braucht es nicht für eine stabile $http Verbindung zum Server (z. B. PHP). Ich kann bei mir nicht erkennen, das AngularJS bei der Nutzung von $http noch irgend etwas nachladen würde.


    Hier ein noch etwas ausführlicheres AngularJS Beispiel

    https://www.wikitechy.com/angularjs/angularjs-$http


    Wer es gerne Ajax (xhr) von Hand programmiert kann sich hier orientieren

    https://developer.mozilla.org/…and_Asynchronous_Requests

    Macht immer erst mal alles falsch und tritt in jedes Fettnäpfchen...

  • Es geht denke ich weniger um die Menge an Script-Code, sondern um die Abstraktionen und Konzepte, die man sich da vergegenwaertigen muss. Der TE kaempft schon damit, den Vergleichsoperator anzuwenden. Und soll jetzt auf Angular aufsatteln?

  • Zu AngularJS gibt es auch folgendes zu bedenken:


    Quote


    On July 1, 2018 AngularJS entered a 3 year Long Term Support period.


    Long Term Support

    On July 1st 2018, AngularJS entered a Long Term Support period.

    We now focus exclusively on providing fixes to bugs that satisfy at least one of the following criteria:

    • A security flaw is detected in the 1.8.x branch of the framework
    • One of the major browsers releases a version that will cause current production applications using AngularJS 1.8.x to stop working
    • The jQuery library releases a version that will cause current production applications using AngularJS 1.8.x to stop working.

    Und Angular 2- ist ganz anders aufgebaut.

  • Ich denke die kommen schon an? Es flackert doch angeblich ohne Vergleich?

    Ja, klar kommen sie an, aber halt nur ganz normal beim Seitenaufruf über Php einmal angefragt und dann ins HTML eingebaut. Ich werde heute mal mit AJAX und Fetch API rumprobieren.