Brauche Tip zur wechsel Ausgabe

  • Die Beschreibung ist doof ,ich weiß. Habe auch kein Plan was ich sonst schreiben soll.

    Es geht um eine Datenbank Ausgabe, und zwar soll jeder zweite Eintrag andersrum sein.

    Und zwar soll beim Chat nicht wie üblich jede zweite Zeile eine andere Farbe sein ,sondern Name und Message verdreht.

    Dazu habe ich 2 Echo Ausgaben die das Ergebnis machen

    * Link entfernt , weil existiert nicht mehr *


    Jetzt brauche ich in PHP Code ,in der SQL while Schleife eine Möglichkeit , die bei jeder 2ten Ausgabe den anderen Echo gibt.

    Ich denke immer dran das nee if Abfrage, der richtige weg ist ,aber finde jetzt nicht den richtigen Ansatz.

    Wie würdet ihr das machen ? ,oder was mache ich falsch?

    Vielen Dank und Guten morgen allerseits

  • Ja meistens ist die Lösung doch einfacher als man denkt,

    Der Test gerade sah schon gut aus .

    Da es ja while Schleife ist habe ich es jetzt so gemacht.

  • Ich würde noch einen Schritt weiter gehen und nur die CSS-Klasse auf dem Modulo basieren lassen, anstatt die gesamte Zeilenausgabe.

    Die Ausgabe wird vom Typ immer gleich sein, bspw.:

    HTML
    <div class="chatmsgrow">
        <div class="author"><span>Hans Wurst</span><span>27.07.2018 07:05:23</span></div>
        <div class="message">foobar is baz</div>
    </div>

    Je nach Modulo gibst Du dann dem Container die zusätzliche Klasse left oder right, bspw.:

    HTML
    <div class="chatmsgrow left">
        ...
    </div>
    
    <div class="chatmsgrow right">
        ...
    </div>

    Wenn Du die chatmsgrow nach dem Flexmodell aufbaust, kannst Du per CSS die Anordnung der Childs für right einfach umdrehen:

    Code
    flex-direction:row-reverse;

    Dein PHP sähe dann in etwa so aus:

    Nur als Beispiel, die Namen und Datum/Uhrzeit, sowie die Nachricht selber musst Du natürlich mit ersetzen.

    Im HTML kannst Du die Messages dann komplett ausgeben: echo implode( $aChatMessages );

  • Daran habe ich am Anfang auch noch gedacht das ich die Klassen ändere.Aber da ich wieder ein hänger im Kopf hatte kam ich da erst nicht weiter.Dann hatte ich wieder eine unnötige zu lange Codezeile gehabt ,und zum Schluß habe ich gedacht das ich es mit 2 verschiedene echos mache. Klappt soweit auch ganz gut. Aber dein Vorschlag werde ich mir auch mal genauer anschaun weil es scheint ja auch kürzer zu sein.


    Anderes Thema. da ich immer mit Php und client durcheinander komme muss ich bei den Javascripte ,die auf die Chatbeiträge zugreife ( zb Lösch function durch Admin ) die Javascript mit einen setTimeout von 500ms laden ,weil das js ja schneller geladen ist als die Datenbank und der Request.

    Da nervt mich noch alles etwas.

    Da der Chat andauernd ein reload macht ( zb 3 Sekunden ) um zu kucken ob es neue Beiträge gibt ,kam ich auf die Idee das es ja nur mit Ajax geht. Php Lösung kenne ich nicht.


    Habt ihr da auch noch nee idee wie man das von der struktur her angehen kann.


    Aber Ich lerne trotzdem dazu weil baue gleichzeit nee Setup Datei und Config.php.

    Das hatte ich letztens beim ersten Versuch alles weggelassen und mußte für bestimmte Einstellungen ewig suchen in den Scripten:)

  • Vielleicht solltet Du Dir Polling bzw. Sockets ansehen.

    Eine 3 sekündliche Aktualisierung vom Client gesteuert halte ich für etwas dirty...


    Eine reine PHP-Lösung gibt es nicht, da immer eine Aktion vom Client aus gefeuert werden muss.

  • Mit polling habe ich schon mal versuche gemacht ,wie und was und soweiter das funktioniert.Das hatte mit 2 Browsern und hin und her schreiben gut Funktioniert. In den Browsertools steht da dann auch immer das der request noch nicht zu ende ist ,und verschwindet erst dann wenn neue nachricht da ist . Interesante sache ,das könnte ich vieleicht sogar hinbekommen.


    Aber Socket ist etwas was ich noch nicht checke. Bei meinen Googeln habe ich auch kein Chat gefunden der das auf Socket macht .Auch Funktionierende Codes wahren nicht zu finden. Irgendwie habe ich das gar nicht verstanden oder wirklich nur Müll gefunden.


    Beim goggeln habe ich das auch so verstanden das man bei Socket sowas wie ein hoster brauch ( Weis den Namen jetzt nicht ) also http://blabla-socket , und irgendwie wahren bei den meisten Googel funde auch irgendwie ein Javascript mit in Betrieb.


    Hast du da irgendwo im Netzt ein Funktionierenden Code, Beispiel, Tutorial oder Anleitung wo man das sehen kann wie das läuft und was man brauch ?

  • So auf die Schnelle habe ich jetzt keine Beispiele für Sockets in Bezug auf Chats.

    Das Prinzip ist aber eine Server-/Client Abhängigkeit. Man benötigt dazu nicht zwingend einen speziellen Hoster, es muss halt nur möglich sein, auf dem Server einen Socket-Server zu initiieren.


    Diese Socket-Server lauschen i.d.R. auf bestimmten Ports und verarbeiten die Anfragen, die dort reinkommen und senden die Antworten zurück.

    Ganz grob nicht viel anders, wie Polling, nur das beim Polling ein bestimmtes Script angestoßen wird und so lange läuft, bis sich bspw. eine Änderung ergibt und beim Socket ein Dienst bzw. Daemon permanent läuft.

  • Vielleicht solltet Du Dir Polling bzw. Sockets ansehen.

    Kannst du mir mak Tipp geben wie ich eine änderung mit Datenbank mache.

    Ich habe das jetzt so das die Ausgabe in einer Textdatei ist.Sobald sich da was ändert kommt der Request.Also so wie von Polling erwartet. Nur weiß ich überhaupt nicht wie ich das mit der Datenbank machen soll. Zur Zeit lese ich die Db aus und das Echo ist alleine auf einer Seite. Wollte dann die Seite nehmen als Textdatei ersatz. Komischerweise liest er den ganzen Php Code aus nd nicht was als echo ankommt .Voll daneben||. Gib mir mal bitte ein Tipp oder sonst was wie man das machen muß weil Code posten geht ja nicht

  • Hat sich erledigt. Nach 5 Stunden nicht erfolgreich sein lasse ich es bleiben.Komme da nicht weiter. Im Netzt finde ich nur Sachen die mit textdatein aufgebaut sind oder andere Sachen die ich nicht zum laufen bekomme. Ob ich die Zeit von einer Textdatei bekomme oder von der Datenbank sollte doch egal sein oder nicht ?


    Findet der Server eigentlich Polling lustig ? Wenn zum Beispiel 20 Leute am Chatten sind dann liegen doch 20 Requeste auf den Server die nicht geschlossen wurden ,oder sehe ich das Falsch ? Wird der Server dadurch nicht mehr belastet durch nicht vollendete Requeste?



    EDIT: Habe es jetzt hinbekommen und zwar schreibe ich den request zusätzlich in ein Textdocument und frage das mit ab. Direkt auf Datenbank die Abfrage mit polling kriege ich halt nicht hin.

    Aber mal nee frage.Wie kann man Einstellen wie lange der Request dauert. Nach 2 Minuten wird der Request auf einnmal abgebrochen. Er macht in der Zeit alles was von Polling erwartet wird ,doch nach 2 Minuten Leerlauf bricht der Request ab. Was muß man da machen ?

Jetzt mitmachen!

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