Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]
Forum PHP.pl > Forum > PHP
arky_
Witam szanownych grupowiczów!
Mam oto taki problem:
Napisałem skrypt, który ze strony administratora wysyła na stronę użytkowników (oczywiści obie strony dostępne po zalogowaniu) różne wiadomości. Wszystko zapisywane jest do tabeli 'msg'. Problem tkwi w tym, że nie wiem jak uzyskać (zapisać do bazy i sprawdzić) potwierdzenie, że dany użytkownik przeczytał wysłaną do niego wiadomość. Dodam jeszcze, że wiadomości nie są wysyłane do każdego użytkownika osobno (nie otrzymują kopi tej samej wiadomości) tylko czytają jedną i tą sama wiadomośc z jednej tabeli.
vokiel
Tworzysz tabele, w ktorej zapisujesz ID_USR, ID_WIADOMOSCI
Jesli usr odczyta wiadomosc, to usuwasz rekord z tej tabeli.
blooregard
W takim przypadku musisz utworzyć dodatkową tabelę, np 'redaed_messages':
rm_id PRIMARY AI
user_id - relacja do tabeli z userami
message_id - relacja do tabeli z wiadomościami
readed (tu wystarczy np. TINYINT 1, albo enum 't','n')

W momencie, gdy user otworzy wiadomość:
UPDATE readed_messages SET readed = 't' WHERE user_id = '$user_otwierajacy_wiadomosc' AND message_id = '$id_wiadomosci';

Sprawdzenie, czy wiadomość została przeczytana:
SELECT IF(readed = 't' , 'przeczytana', 'nieprzeczytana') AS readed FROm readed_messages WHERE user_id = '$user_otwierajacy_wiadomosc' AND message_id = '$id_wiadomosci';

Cytat
Dodam jeszcze, że wiadomości nie są wysyłane do każdego użytkownika osobno (nie otrzymują kopi tej samej wiadomości) tylko czytają jedną i tą sama wiadomośc z jednej tabeli.

Trochę dziwne rozwiązanie - a jak user zechce skasować taką wiadomość, to inni też nie będa mieli możliwości jej czytania. Chyba, że nie ma możliwości kasowania wiadomości.
Spawnm
Proszę o poprawienie tytułu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.