Werte aus MySQL via Ajax darstellen

  • Hi,


    ich möchte in meiner HTML5 Seite eine Tabelle mit Werten aus einer MySQL Datenbank darstellen.
    Gleichzeitig sollen einzelne Zeilen live gelöscht werden können.


    Hat mir hierzu jemand einen Link zu einem Tutorial oder kann es mir hier erklären?


    Danke!

  • Das sind ja 2 verschiedene Themen.
    Ein HowTo kenn weiß ich grad nicht, aber wenn Du nach den Sachen einzeln suchst, wirst Du sicher was finden.


    Ajax Turri ham wir hier on Board.
    Und via Ajax stößt Du dann halt ein (PHP) Script an, welches die Request prüft, und ausführt.


    Es ist eigtl einfacher, wenn Du sagst, was nicht funktioniert =)

  • Hi!


    ich hab nun ein einfaches Script, um via JSON eine Tabelle mit Werten einer MySQL Datenbank zu erstellen.
    Jedoch ist das "Refresh" nicht sauber gelöst. Durch das Leeren des Div's und der erneuten Generierung der Tabelle ist es ziemlich nervig für den Betrachter.


    Welche weiteren Möglichkeiten gibt es, die MySQL Tabelle ständig zu aktualisieren?
    Am besten wäre eine Abfrage der SQL Datenbank im Hintergrund und sofern dort eine Änderung stattfindet soll die HTML Tabelle neu aufgebaut werden.


    Hier der Code:



    Grüße
    Schmakus

  • Hi!




    Welche weiteren Möglichkeiten gibt es, die MySQL Tabelle ständig zu aktualisieren?
    Am besten wäre eine Abfrage der SQL Datenbank im Hintergrund und sofern dort eine Änderung stattfindet soll die HTML Tabelle neu aufgebaut werden.


    Das klingt mir sehr danach als ob hier Long Polling gebraucht werden würde.
    Suchbegriffe sind da : Long Polling jQuery Ajax


    Long Polling beendet die Vebindung zum Server nämlich nicht und wartet immer bis an einer Stelle neue Daten vorliegen :)


    mfg Nita

  • Nitamud ich glaub nicht. Denn Serverseitig wird ja sicherlich per PHP die Sql-db ausgelesen.
    Wenn die Verbindung offen bleibt (wenn ich long polling richtig verstanden hab), dann müsste ja das PHP script eine Endlosschleife sein.
    Das wäre evtl unnötig. Aber es gibt ja bei jedem Problem mehrere Lösungen.


    Meine 2 Ansätze wären:
    per JS prüfen, ob die Daten die gleichen sind die beim letzten call erhalten wurden
    oder
    per PHP prüfen, ob die Daten die gleichen sind die beim letzten call gefunden wurden -- wenn ja, dann antworte mit (Bsp) einem code 0


    PHP seitig könntest Du die Daten vom letzten call in eine SESSION ablegen.
    Beim nächsten call holst Du die Daten aus der db, vergleichst ob diese die gleichen sind wie in der SESSION.
    Wenn ja -> daten müssen nicht gesendet werden,
    wenn nein -> update SESSION mit aktuellen daten und sende daten

  • Nitamud ich glaub nicht. Denn Serverseitig wird ja sicherlich per PHP die Sql-db ausgelesen.
    Wenn die Verbindung offen bleibt (wenn ich long polling richtig verstanden hab), dann müsste ja das PHP script eine Endlosschleife sein.
    Das wäre evtl unnötig. Aber es gibt ja bei jedem Problem mehrere Lösungen.


    Long Polling zielt hier vor allem auf eine Live-Übertragung neuer Daten ab, wenn allerdings nur bei einem bestimmten Ereignis(click etc.)
    die Daten geupdatet werden sollen, ist dies wie du richtig sagst natürlich übertrieben. Einen recht schönen Überblick über die verschiedenen
    Verbindungsarten bietet mMn diese Stackoverflow-Seite:


    http://stackoverflow.com/quest…sent-events-sse-and-comet


    Den Vorteil den Long Polling gegenüber normalem Ajax-Polling hat liegt vor allem darin, das sie Anzahl der Requests kleiner gehalten wird.
    Am Besten schaust du Schmakus dir die Verbindugsarten in Verbindung mit deinem Ziel an und entscheidest dann, was das von dir
    Gewünschte am Besten umsetzen kann :)

  • Ein paar kleine Performace Tipps nebenbei..
    Wenn du 10 mal dein JS das DOM nach dem Objekt mit der ID tablebody durchsuchen lässt, kostet das sehr viel Zeit..
    Lieber einmal das entsprechende Element Objekt in eine Variable schreiben und dann verwenden..
    (Das $ am anfang der Variablen schreibe ich mir aus übersichtlichkeitsgründen immer hin wenn die Var ein jQuery Objekt enthält..)


    Noch ein Schritt weiter..


    Viel Spaß :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!