Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Grupowanie w wiadomościach
quax
post 7.05.2013, 13:37:09
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 2.09.2012

Ostrzeżenie: (0%)
-----


Witam,
mam taki problem. Otóż robie wiadomości prywatne tzn. PM i funkcjonalnością przypomina wiadomosci z Facebooka. Wytłumacze w czym problem:

baza wygląda mniej wiecej tak:
ID | ID_USER | ID_USER_SENDER | TEXT

wiadomosci wysyłam w sposób taki iż id_user to identyfikator uzytkownika który dostaje wiadomosc, a id_user_sender to identyfikator użytkownika wysyłającego.

baza po dodaniu kilku rekordów:
ID | ID_USER | ID_USER_SENDER | TEXT
1 | 1 | 2 | tresc wiadomosc1
2 | 2 | 1 | tresc wiadomosc2
3 | 2 | 1 | tresc wiadomosc3
4 | 2 | 3 | tresc wiadomosc4
5 | 1 | 2 | tresc wiadomosc5
6 | 1 | 3 | tresc wiadomosc6

musze to pogrupować w sposób taki aby tylko moje wiadomosci byly dostepne dla mnie czyli id 1:

ID | ID_USER | TEXT
1 | 1 | tresc wiadomosc5 - ostatni rekord id_user/id_user_sender czyli ID 5
6 | 1 | tresc wiadomosc6 - ostatni rekord id_user/id_user_sender czyli ID 6


potrzebuje tylko unikalnych ID_USER i ID_USER_SENDER

Ten post edytował quax 7.05.2013, 13:51:25
Go to the top of the page
+Quote Post
lexis72
post 7.05.2013, 14:30:03
Post #2





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 25.02.2013

Ostrzeżenie: (0%)
-----


  1. select text from xxx where id_user = 1
Go to the top of the page
+Quote Post
quax
post 7.05.2013, 15:59:18
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 2.09.2012

Ostrzeżenie: (0%)
-----


Naprawdę pomocne. dry.gif

takie coś odpada. bo mogę i ja wysłać wiadomość i ktoś do mnie a wcale nie muszę jej odczytać.

muszę otrzymać wynik niezależnie od tego czy to ja jestem ID_USER CZY ID_USER_SENDER
i dodatkowo musi być to ostatnia wiadomość

Ten post edytował quax 7.05.2013, 16:03:29
Go to the top of the page
+Quote Post
lexis72
post 7.05.2013, 16:04:45
Post #4





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 25.02.2013

Ostrzeżenie: (0%)
-----


Szczerze mowiac to Cie nie rozumiem jesli chcesz zobaczyc wiadomosci wyslane i odebrane to dodaj tez id_user_sender do warunku where. Jesli chcesz ostatnią wiadomosc dodaj Limit 1 na sortowanie id wiadomosci.

Ten post edytował lexis72 7.05.2013, 16:07:16
Go to the top of the page
+Quote Post
quax
post 7.05.2013, 17:21:09
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 2.09.2012

Ostrzeżenie: (0%)
-----


Patrząc po twoim doświadczeniu raczej wątpię ze mi pomożesz. Opisze wszystko jeszcze raz.

System wiadomości działa na zasadzie: Wiadomości wątkowych.

Wyświetlanie ok.
Wysyłanie ok.
Wyświetlanie po obu stronach ok.

Sprawa się komplikuję jak mam zrobić listę osób z którymi rozmawiałem. Trzeba brać pod uwagę ze ktoś mógłby do mnie napisać, a ja nie odp.
Całość ma wyglądać w ten sposób że jeśli pisałem z kimś to ma być nick osoby(w moim przypadku ID użytkownika w tabeli ID_USER_SENDER) i ostatnia wiadomość albo moja albo jego zależy kto napisał ostatni.
Cała baza wygląda tak z przykładami:



Dobra dodam i moje zapytanie jak wygląda a pod nim wynik:

nie powinny się duplikować jak w przypadku ID 1 i 2, a 16 i 18 to wiadomości bez odp.

Ten post edytował quax 7.05.2013, 17:32:06
Go to the top of the page
+Quote Post
Michael2318
post 9.05.2013, 08:14:39
Post #6





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


Powinieneś tutaj dodać dodatkową kolumnę, gdzie będziesz numerował ROZMOWY (nie rekordy, a rozmowy). Wtedy przykładowo dla ID 1 i 2 przypisujesz unikalny identyfikator (powiedzmy 443) i w zapytaniu zwyczajnie definiujesz 'GROUP BY `unique_id_pm`. W efekcie powinieneś dostać to czego oczekujesz.

Ten post edytował Michael2318 9.05.2013, 08:15:15
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 02:34