![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie,
Dawno mnie tutaj nie było ale moja głowa już nie potrafi znaleźć nowego rozwiązania, wiec chciałbym prosić Was o pomoc. Otóż posiadam w swoim serwisie prywatne wiadomości i mam mały problem z nimi. Otóż działają one na zasadzie, czatu gdzie ludzie ze sobą mogą rozmawiać bez przeładowania strony czyli można powiedzieć taki komunikator. Użytkownik [X] który nigdy nie rozmawiał z użytkownikiem [Y] pisząc do niego prywatną wiadomość rozpoczyna ROZMOWĘ, a w rozmowe znajdują się wiadomości przesłane do siebie. Schemat bazy danych wygląda nastepująco : TABELA MESSSAGE_talk - Tutaj zapisywane są rozmowy, do których podpięte będą dopiero przesłane wiadomości
TABELA MESSSAGE_messages - Tutaj zapisywane są wiadomości należące do rozmowy, wspólny klucz MESSAGE_talk.id = MESSAGE_messages.idTalk
--------------------------------------------------------------------------------------------------- W chwili obecnej wszystko działa poprawnie, poczta jest sprawna, ale mam problem z wyświetlaniem Rozmów po przejściu do /poczta Chciałbym aby były wyświetlane rozmowy, według kolejności w jakiej ostatnio otrzymałem odpowiedź. I tutaj są dla mnie schodzi, bo w chwili obecnej wyciągam dane grupując wiadomości, ale nie mogę już sortować według daty przesłania wiadomości, przez co rozmowa rozpoczęta wczoraj, jest gdzieś na szarym końcu mimo, że posiada nową wiadomość. Dane wyciągam takim zapytaniem ->
Niestety Order tutaj i tak nie ma znaczenia, bo wyniki i tak są wyświetlane w zły sposób. Wiem że może być ciężko to zrozumieć, ale może uda się komuś załapać o co mi chodzi, mogę pokazać przykład na żywo jak to wygląda. Byłbym bardzo wdzięczny za pomoc w nakierowaniu w którą stronę iść, bo już mocno przekombinowałem sobie i teraz stoję w martwym punkcie. W najgorszym wypadku przepiszę całą pocztę na nowo. Z góry bardzo dziękuję za pomoc -------------------- :) na miliony przyjdzie czas...
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A gdybyś sortował po ID od końca
![]() I pokaż działanie o ile mozliwe. Ten post edytował kpt_lucek 6.06.2012, 21:07:42 -------------------- Cytat There is a Bundle for that Lukas Kahwe Smith - October 31th, 2014 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Ustawiając sortowanie według msg.id DESC, lub msg.id ASC różnica polega tylko na sortowaniu tego kiedy zostąła wysłana ta pierwsza wiadomość, próbowałem już takimi sposobami ale tutaj chyba gryzie się GROUP i ORDER.
Poczta wygląda w taki sposób, czyli to co teraz wyświetla: I tutaj widać że posiadam listę rozmów, i data która tam się pojawia jest datą otrzymania ostatniej wiadomości od użytkownika. chciałbym sortować według tej daty. I dodatkowo wiadomość która się pojawia, jest pierwszą wysłaną wiadomością, a chciałbym właśnie wyświetlać też ostatnią otrzymaną wiadomość. ![]() -------------------- :) na miliony przyjdzie czas...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 5 Dołączył: 8.12.2011 Skąd: Łomża Ostrzeżenie: (0%) ![]() ![]() |
a probowales tak? [php]... ORDER BY DATA DESC[/PHP ]
-------------------- if($problem == 1)
{ header("Location: http://www.forum.php.pl"); } else { thinking(); } |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Teraz sprawdzam i to mój błąd, w wysłanych wiadomościach miałem dobrze zrobione, tutaj wkradł się błąd i właśnie błędnie wyświetlałem.
Więc dziękuję bardzo za pomoc, jednak nadal pozostaje problem wyświetlania pierwszej wiadomości z rozmowy, a ma to być ostatnia wiadomość z rozmowy. -------------------- :) na miliony przyjdzie czas...
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Domyślnie przy grupowaniu bierze pierwszy pasujący rekord spośród grupowanych. Dlatego najprostsze rozwiązanie to przed grupowaniem już posortować rekordy.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.08.2025 - 22:33 |