2016-08-13 4 views
0

enter image description herewie die letzte Nachricht von Konversationsgruppe

ich es einfach war, erwarte durch die Verwendung zu finden, aber das Problem steckte die Liste des Gesprächs von Sender-Empfänger-Array mit Gruppe zu finden, ist hier oben Snapshot der Datenbank

ich habe die obige Sequenz mit Gruppe von Sender-ID und der Empfänger-ID gefolgt, aber in immer das Gespräch stecken die


hier einzigartig ist die Abfrage

SELECT tbl_registration.name as sender_name,group_concat(message SEPARATOR '|') as message_list,`sender_reciever_array`,`datetime`,`reciever_id`,`sender_id` FROM `tbl_chatting_view` 
inner join 
tbl_registration 
on tbl_registration.id=tbl_chatting_view.sender_id 
group by `sender_reciever_array` 

die folgenden Ergebnisse in PHP-Array erzeugt

array(5) { 
    [0]=> 
    array(6) { 
    ["sender_name"]=> 
    string(7) "harshit" 
    ["message_list"]=> 
    string(4) "k|my" 
    ["sender_reciever_array"]=> 
    string(4) "2,29" 
    ["datetime"]=> 
    string(19) "2016-08-06 13:34:09" 
    ["reciever_id"]=> 
    string(2) "29" 
    ["sender_id"]=> 
    string(1) "2" 
    } 
    [1]=> 
    array(6) { 
    ["sender_name"]=> 
    string(7) "harshit" 
    ["message_list"]=> 
    string(5) "mohan" 
    ["sender_reciever_array"]=> 
    string(3) "2,5" 
    ["datetime"]=> 
    string(19) "2016-08-08 12:18:45" 
    ["reciever_id"]=> 
    string(1) "5" 
    ["sender_id"]=> 
    string(1) "2" 
    } 
    [2]=> 
    array(6) { 
    ["sender_name"]=> 
    string(5) "admin" 
    ["message_list"]=> 
    string(9) "jkgh|test" 
    ["sender_reciever_array"]=> 
    string(4) "29,5" 
    ["datetime"]=> 
    string(19) "2016-08-02 11:31:45" 
    ["reciever_id"]=> 
    string(1) "5" 
    ["sender_id"]=> 
    string(2) "29" 
    } 
    [3]=> 
    array(6) { 
    ["sender_name"]=> 
    string(5) "admin" 
    ["message_list"]=> 
    string(56) "Jhadjksdhjkahsjkhdfjshfjhdsjfh|Asdasfdfs|Hgasdhjgdhgsahj" 
    ["sender_reciever_array"]=> 
    string(5) "29,63" 
    ["datetime"]=> 
    string(19) "2016-08-12 12:47:53" 
    ["reciever_id"]=> 
    string(2) "63" 
    ["sender_id"]=> 
    string(2) "29" 
    } 
    [4]=> 
    array(6) { 
    ["sender_name"]=> 
    string(10) "Kiran sahu" 
    ["message_list"]=> 
    string(156) "Asdafdggfhgfj|HhjjhhjjhhFghxfzcgc 

Bnasbdjnbfjdjfh 


Ninja admonishments 

Njkdnsfjkndgnkdfn 

|Ghjgsdfhjgfh|Sadas|Dgfjdjkjkhsjkjkas 
Dsjmjkdsljflkjsdlkfcjklsd" 
    ["sender_reciever_array"]=> 
    string(5) "63,29" 
    ["datetime"]=> 
    string(19) "2016-08-13 05:39:56" 
    ["reciever_id"]=> 
    string(2) "29" 
    ["sender_id"]=> 
    string(2) "63" 
    } 
} 

Hier in der obigen Anordnung ist die letzte Nachricht mit der Liste mit dem seperator wie in der Meldung Array kommen wird ‚|‘ , und in der Sender- und Empfänger-Array gibt es in der two array 63,29 and 29,63, aber ich brauche die Kombination der beiden Nachricht

+0

Entschuldigung, ich kann nicht verstehen, welches Ergebnis Sie suchen? –

Antwort

0

Sie könnten damit herumspielen. Normalisieren Sie Ihre GROUP BY, um beide Seiten der Konversation zu enthalten? Ich bin kein SQL-Experte, also weggeraten. (Empfänger ist falsch geschrieben): D

SELECT IF(tcv.sender_id > tcv.reciever_id, 
      concat_ws(',', tcv.reciever_id, tcv.sender_id), 
      concat_ws(',', tcv.sender_id, .tcvreciever_id) 
     ) as both 
FROM tbl_chatting_view tcv 
GROUP BY both 
Verwandte Themen