1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

In MySQL-Tabelle Daten oben einsetzen

Dieses Thema im Forum "PHP & Co." wurde erstellt von karolherbst, 31.07.08.

  1. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    ich habe diesen php Befehl
    Und jetzt will ich, dass die neuen Daten immer oben in die Tabelle eingetragen werden

    Wenn das nicht klappen sollte, dann würde ich gerne eine Möglichkeit erfahren wo man die Daten von unten nach oben aus der Tabelle auslesen kann.
    Das ist der Schnipsel ,den ich für das Ausgeben der gesamten Tabelle verwende:
    Danke schonmal im Vorraus
     
  2. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.567
    Die Reihenfolge der Datensätze in einer Datentabelle ist (meistens) schnuppe und INSERT fügt Datensätze regulär "unten" an die Tabelle an.


    Du kannst bei der Ausgabe mit dem SELECT-Statement einfach ein "ORDER BY" anhängen und nach x-beliebigen Spalten sortieren. Neueste Daten zuerst ausgeben? Dann die Daten mit
    Code:
    SELECT Autor, Eintrag, Datum, Uhrzeit FROM test ORDER BY Datum, Uhrzeit DESC;
    
    aus der DB holen.

    Siehe auch z.B. http://www.w3schools.com/sql/sql_orderby.asp
     
    karolherbst gefällt das.
  3. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    Danke hat alles geklappt außer, dass ich ein "DESC" auch hinter "Datum" einsetzen musste.

    Jetzt eine etwas (meines Erachtens) komplexere Frage:
    Was muss ich machen, damit eine Veränderung an der DB an den Browser gesendet wird, damit dieser den html-Frame mit der Ausgabe der DB aktualisiert? Ich habe jetzt als Not Lösung ein JavaScript geschrieben, das jede 2 Sekunden den frame aktualisiert.
    Also falls das nciht ganz verstanden wurde:
    Wenn jetzt ein Benutzer was eingibt, soll ein anderer Benutzer, der irgendwo anders ist, dies sofort mitbekommen. Wie geht das?

    Danke schonmal im Vorraus

    PS: Mit dem Einfügen in die DB. Bei mir war es so, dass er eine gewisse Anzahl von Daten oben eingefügt hat und danach alles wieder unten. Nach dem Löschen der Daten geschah das gleiche. Deswegen kam ich auf den Gedanken, dass die Daten schon "sortiert" eingefügt werden können
     
  4. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    Gar nicht, HTTP ist ein stateless protocol. Wenn Du so etwas willst, wirst Du um ein Java Applet nicht herumkommen.
     
  5. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.567
    JavaApplets sollte man um jeden Preis vermeiden. Nicht, weil ein JavaApplet schlecht ist, sondern weil eine HTML/JS-Lösung mehr "lightweight" ist.

    Für "Push"-Updates unter HTML kann ich mir folgendes vorstellen (teilweise aber noch nicht von mir eingesetzt):

    • Ajax pushlets: http://www.pushlets.com/
    • Quick'n'Dirty-Lösung: (letzte Änderungszeit per separaten script als JSON bereitstellen und das alle x-sekunden per JS abrufen. Wenn aktueller Datenstand!=Änderungszeit => Seite neu laden)
    Wenn Du es ganz elegant machst, solltest Du nicht einfach die Seite bei geänderten Daten neu laden, sondern die Änderungen per XML/JSON übertragen und per JS dann die Änderungen ins DOM des momentanen Dokumentes integrieren.
     
  6. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    Das halte ich für übertrieben. Zumal mittlerweile dieselben Sicherheitsprobleme mit JavaScript auftreten wie früher mit Applets. Und Java ist im Gegensatz zu anderen Techniken, Flash ist proprietär, eine offene Technik.
     
  7. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    und cih finde Java sehr langsam und träge, 2tens verbraucht das mehr Ressourcen und alles.
     
  8. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.567
    Sehe ich auch so. Warum noch mehr zusätzlichen Overhead für die JVM verbraten, wenn man eh schon alles mit HTML/CSS/JS clientseitig machen kann?

    Für ganz komplizierte Sachen kann man natürlich immer noch auf ein Java-Applet zurückgreifen. Aber solang es noch ohne geht, würde ich darauf verzichten.

    Serverseitig allerdings finde ich Java echt gut.
     
  9. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    heißt also eine DHTML ähnliche Seite erstellen, die eben nur auf Server-Zugriffe (in dem fall pushlets) als durch Benutzereingaben reagiert?
     
  10. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.567
    Ja genau. Du kannst Dir bei diversen Chat- und LiveSupport-Lösungen eventuell ansehen, wie es geht.
     
  11. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    Ich habe mir grade was anders überlegt:
    Man kann doch einfach ein JavaScript schreiben, welches das Datum/Uhrzeit vom letzten Eintrag (das soll sone Art Forum-Projekt werden) mit dem Datum/Uhrzeit des letzten Eintrages in der DB vergleichen (irgendwie mit php und so XD) und dann per DHTML den neuen Eintrag oben anfügen oder?
     
  12. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.567
    Das ist exakt das, was ich mit
    meinte :)
     
  13. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    aso ok, werde es mit
    Code:
    setTimeout("funktion_zur_Überprüfung()",5000);
    machen. Doch eines bereitet mir dann ncoh Kopfzerbrechen: Wie kann ich per php die neusten Daten aus der DB abrufen?
    damit sortiere ich und jetzt habe ich versucht mit
    Code:
    $ar=mysql_fetch_array($result,MYSQL_ASSOC);
    $Datum=$ar["Datum];
    $Uhrzeit=$ar["Uhrzeit"];
    die ersten Einträge in die Variablen $Datum und $Uhrzeit abzuspeichern, doch die Variablen bleiben leer. Muss dies in einer Schleife passieren oder geht das so nicht und muss es anhand eines anderen Befehls gemacht werden?
     
  14. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.567
     
  15. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    Ich habe schon JavaScript überladene Seiten gesehen, die ebenfalls langsam und träge waren. Die Beispielseite für Pushlets fand ich persönlich auch nicht gerade überzeugend schnell, möglicherweise lag es da auch am Server. Es kommt also auf den Einzelfall drauf an.
     
  16. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    also wenn ich eine Seite schreibe, bei der jede 5 Sekunden 2 simple Variablenabfragen gemacht werden, dann finde ich das sinniger als gleich ein ganzes JavaApplet zu schreiben, wo gleich die ganze JavaEngine mit geladen werden muss.
    Für mich reicht JavaScript vollkommen aus.
     
  17. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    Hilfstabelle anlegen in der der letzte Lesezugriff protokolliert wird, und dann nur Einträge in der Suche einschließen, die älter sind.
     
  18. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    Polling ist bei ganz einfachen Sachen die leichteste Lösung.
     
  19. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    das einzige Problem bie mir ist noch das die
    Code:
    setTimeout("CheckNewPost()",5000);
    Funktion sich nicht erneut abruft. Könnte vlt XHTML da irgendwas blockieren, obwohl ich die Quelltexte als transitional schreibe?

    PS: Das mit dem aktuellste Post abfragen was bananenbieger vorgeschlagen hat, klappt ohne Probleme. Danke!
     
  20. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.567
    Bin gerade in JS etwas eingerostet, aber kannst Du nicht am Ende der aus der setTimeout ausgerufenen Funktion einfach einen neues setTimout-Befehl setzen?
     

Diese Seite empfehlen