Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Nachrichtensystem mit PHP und MySQL

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Nachrichtensystem mit PHP und MySQL

    Hallo php.de nutzer,

    Ich versuche momentan ein Nachrichtensystem zu schreiben und stecke grade bei der sortierung der Nachrichten fest.

    Meine geschrieben nachrichten und die vom Partner werden beide abgerufen aus der datenbank. Dann wird geschaut, welche nachricht von welchem Benutzer zuerst kommt.

    Auf der Datenbank steht das:

    FromID |ToID |Datum |Text
    1 |2 |1400939847| nachricht 1 von mir
    1 |2 |1400942178| nachricht 2 von mir
    2 |1 |1400944653| nachricht 1 von ihm
    2 |1 |1400944668| nachricht 2 von ihm
    1 | 2 |1400945279| nachricht 3 von mir


    Angezeight werden:

    nachricht 1 von mir
    nachricht 2 von mir
    nachricht 1 von ihm

    Hier ist der Script:
    PHP-Code:

            
    ///////////Belegt die variablen zum prüfen welche Nachricht zuerst kommt. Meine oder die vom Partner./////////////////

                
    $sql_message_from "select * from nachrichten where FromID=".$MeineID." AND ToID=".$PartnerID." order by Datum";
                
    $sql_message_from $db->query($sql_message_from);
                
    $row_from $db->fetch_array($sql_message_from);
                
    $MeineErsteNachricht $row_from["Datum"];
                
                
    $sql_message_to "select * from nachrichten where FromID=".$PartnerID." AND ToID=".$MeineID." order by Datum";
                
    $sql_message_to $db->query($sql_message_to);           
                
    $row_to $db->fetch_array($sql_message_to);
                
    $SeineErsteNachricht $row_to["Datum"];
                

                
                
    //////////Erneut mit der Datenbank verbinden um die vorherigen daten zu Löschen (kenne keine schönere lösung dafür ^^)////////

                
    $sql_message_from "select * from nachrichten where FromID=".$MeineID." AND ToID=".$Partnerid." order by Datum";
                
    $sql_message_from $db->query($sql_message_from);
                
                
                
    $sql_message_to "select * from nachrichten where FromID=".$PartnerID." AND ToID=".$MeineID." order by Datum";
                
    $sql_message_to $db->query($sql_message_to);
                 


            
    //////////////////counter für if abfragen und schleifen///////////////////
                
    $counter 0;
                
    $counter2 0;
                while(
    $counter 20){ //Maximal 20 Nachrichten anzeigen
                    
                    
            /////Kommt meie nachricht zuerst?
                    
    if($MeineErsteNachricht $SeineErsteNachricht){
                            
                            if(
    $counter2 == 0){
                                
    $row_from $db->fetch_array($sql_message_from);
                                
    $date_from $row_from["Datum"];
                            } else {
                                
    $counter2 0;
                            }
                            
                            echo 
    '<table style="width:100%;"><tr style="border-bottom:1px solid #DDDDDD;"><td style="padding:1em; color: #464F54;">';
                            echo 
    date("d.m. h:i.s"$row_from["Datum"]);
                            echo 
    '</td><td style="width:100%; padding:1em; border-left:1px solid #DDDDDD; color:#464F54;">';
                            echo 
    $row_from["Text"];
                            echo 
    '</td></tr></table>';
                            
                            
            
    //////////Wenn nicht kommt seine zuerst/////////////
                    
    }else{
                            
                
    //////////Nur einmal gucken wann meine nächste nachricht kommt////////////
                            
    if($counter2 == 0){
                                
    $row_from $db->fetch_array($sql_message_from);
                                
    $date_from $row_from["Datum"];
                                
    $counter2 1;
                            }
                            
                            
    $row_to $db->fetch_array($sql_message_to);
                            
    $date_to $row_to["Datum"];
                            echo 
    '<table style="width:100%;"><tr style="border-bottom:1px solid #DDDDDD;"><td style="padding:1em; color: #464F54;">';
                            echo 
    date("d.m. h:i.s"$row_to["Datum"]);
                            echo 
    '</td><td style="width:100%; padding:1em; border-left:1px solid #DDDDDD; color:#464F54;">';
                            echo 
    $row_to["Text"];
                            echo 
    '</td></tr></table>';
                    }
                    
                    
    $counter++;
                } 
    Danke schonmal für die Hilfe. MFG DieZeitmaschine

  • #2
    Verstehe irgendwie so ganz und garnicht was du da tust. Hol dir einfach mit EINER Query alle Einträge die entweder von dir an ihn oder von ihm an dich gehen.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Hab ich mir gedacht, dass das sehr durcheinander aussehen muss. Also due meinst ich sollte einfach beide Datenbank abfragen in ein Query tun. Nur wie mache ich das?

      Momentan versuche ich die daten aus beiden Query listen über die schleife und die if abfragen nach Datum (Timestamp) zu sortieren dass sie in der richtigen reihenfolge angezeigt werden.

      Kommentar


      • #4
        Code:
        where (FromID=".$MeineID." AND ToID=".$PartnerID.") OR (FromID=".$PartnerID." AND ToID=".$MeineID.")
        ??
        [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

        Kommentar


        • #5
          Super danke. Ich wusste nicht das man auch ein OR in MySQL benutzen kann. Jetzt geht es.

          Kommentar

          Lädt...
          X