Chat Nachrichten sinnvoll ausgeben

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

  • Chat Nachrichten sinnvoll ausgeben

    Hallo,

    ich habe leider einen gedanklichen hänger. Ich möchte gespeicherte Nchrichten in einem DIV ausgeben. Wie könnte man das am sinnvollsten anstellen?

    DB:
    ID | from_user| to_user | text | timestamp | type

    1 | tester | NULL | test msg | 1583974 | public



    1. Alle Nachrichten per mysql ausgeben, so dass immer alle Nachrichten aktuell ausgegeben werden?

    2. Nur nachrichten ausgeben die man auch gelesen hat?!

    3. Nachrichten nach timestamp ausgeben?

    bin für hinweise dankbar


  • #2
    Gibt es schon Code?

    Gruß
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Zitat von Kropff Beitrag anzeigen
      Gibt es schon Code?

      Gruß
      Peter
      ja gibt es, aber mehr schlecht als recht

      hier mal meine variante, wenn du Verbesserungen hast würde ich die gerne haben wollen

      PHP-Code:
      // diese function liegt im timer drinn alle 1000ms
      function checkMessages() {
          
      //immer aktuelle messageid holen
          
      aktuelleMessageID();
          

          if (
      messageID lastReceivedId)
          {
              
      //wenn aktuelle > als letzte dann hole nachrichten
          
      getRoomMessages(roomIDlastReceivedId);
          }
          if (
      messageID == lastReceivedId)
          {

          }
      }

      function 
      sendTextToDB() {

          
      posting = new Object();
                      
      posting.ac "5";
                      
      posting.messageText = $("#sendChatTextQ").val();
                      
      posting.fromID userID;
                      
      posting.userName = $("#userNameBox").val();
                      
      posting.roomID roomID;
                      
      posting.type "public";
                      
              $.
      post("include/actionLoader.php"posting, function(datastatus){
                  
      updateOnlineTime(); // in table userOnline
                  
      autoAwayTimeStop(); //status from 6 to 0 
      });}


      function 
      getFirstMessageID() {
                  
      //hole letzte id von nachricht aus Datenbank und speicher in Var lastReceivedId
              
      posting = new Object();
                      
      posting.ac "8";
                      
      posting.roomID = $('select#roomsByKatSelBox').val();                            
                      $.
      post("include/actionLoader.php"posting, function(datastatus){
                      
      lastReceivedId data;
                      
                      });

      }

      function 
      aktuelleMessageID() {
                  
      //hole letzte id von nachricht aus Datenbank unbd speicher in var messageID
                      
      posting = new Object();
                      
      posting.ac "8";
                      
      posting.roomID = $('select#roomsByKatSelBox').val();                            
                      $.
      post("include/actionLoader.php"posting, function(datastatus){
                      
      messageID data;
                      
                      });

      }
      //hole nachrichten aus DB anhand der letzten ermittelten ID
      function getRoomMessages(roomIDlastReceivedId) {
                      
      getFirstMessageID();
                      
      //fügt letzte messageID hinzu
                      
      posting = new Object();
                      
      posting.ac "11";
                      
      posting.roomID roomID;
                      
      posting.lastReceivedId lastReceivedId;
                      
      posting.userName = $("#userNameBox").val();
                                  
                      $.
      post("include/actionLoader.php"posting, function(datastatus){
                      
      //$("#chatTextQ").empty();
                      
                              // darf nur append mit neuerer id machen
                              //$("#chatTextQ").append(data);
                              
                              
                              
                              
      checkMessageOptions(data);
                              
                              
                      $(
      "#chatTextQ").animate({scrollTop500 }, 'swing');
                          
                          
                          
                          
                      
                          
                          
                      });


      Nachrichten Holen PHP
      PHP-Code:
      $roomID $_POST["roomID"];
          
      $userName $_POST["userName"];
          
      $lastReceivedId $_POST["lastReceivedId"];
          
      $abfrage "select * from (SELECT * FROM messages WHERE roomID = '$roomID' AND type = 'public' Order By zeit DESC LIMIT 1) as tbl order by zeit";

        
      mysql_query("SET NAMES 'utf8'");
        
      $ergebnis mysql_query($abfrage); 

      while(
      $row mysql_fetch_object($ergebnis))
      {
      $messageID $row->messageID;
      $userName $row->userName;
      $messageText $row->messageText;

      if (
      $messageID $lastReceivedId)
      {
          echo 
      "<div id=\"$messageID\"><b>$userName:</b> $messageText</div>";
      }

      Zuletzt geändert von TheGateway; 01.05.2018, 08:42.

      Kommentar

      Lädt...
      X