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:
Danke schonmal für die Hilfe. MFG DieZeitmaschine
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++;
}
Kommentar