Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pogrubienie linku ala nie przeczytana wiadomosc pocztowa
Forum PHP.pl > Forum > PHP
kalu111
Chcialbym aby w panelu user ktory sie loguje widzial ktore przeczytal wiadomosci a ktore nie. Nie przeczytane powinny byc pogrubione, cos na wzor systemow pocztowych.
Mam jedna tabele z userami i jedna z wiadomosciami.
Mozna by uzyc osobnej tabeli do zapisywania id userai id przeczytanej przez niego wiadomosci w osobnym rekordzie lub poprostu utworzyc dodatkowe pole w tabeli z userami i tam po przecinku dodawac kolejne przeczytane wiadomsci.
Nic innego jak na razie mi do glowy nie przychodzi sad.gif
sf
Jesli jedna wiadomosc moze czytac wiecej niz jedna osoba najlepszy pomysl wlasnie zrobic osobna tabele uzytkownik, przeczytana wiadomosc. Jesli jedna wiadomosc - jeden uzytkownik to oczywiscie najlepiej zrobic przy wiadomosci bool przeczytana / nie przeczytana przez uzytkownika. Dawanie jakis wartosci po przecinku nie zalecam.. ewentualnie w postgresql jest cos takiego jak pole typu array mozesz sprobowac tym sie pobawic.
cicik
Cytat(kalu111 @ 18.09.2006, 12:42:57 ) *
Mozna by uzyc osobnej tabeli do zapisywania id userai id przeczytanej przez niego wiadomosci w osobnym rekordzie


Rozwiazanie dobre aczkolwiek zalecam pewną modyfikacje. W tej dodatkowej tabeli lepiej trzymac info o nieprzeczytanych wiadomosciach niz, tak jak proponujesz, o przeczytanych.
W miare jakludzie beda czytac wiadomosci bedzie ci malec liczba rekordow w bazie a nie rosnac. Efekt wizualny dla frontendu ten sam.
kalu111
oczywiscie, tez o tym pomyslalem
THX
bialko0019
a nie można było by zrobić tak, że dodać jedną kolumnę do tabeli z wiadomościami o nazwie np. `czy` i domyślną wartością 1 ( nowa wiadomośc) . Jezlei ktoś ją przeczyta ( w pliku ktorym się czyta), wpisujesz UPDATE `wiadomosci` SET `czy` ='2' WHERE `id`='$id' ? Potem możesz wyświetlić np. 15 nie przeczytanych wiadomości ( 15 rekordów okreslonego użytwkonika z polem `czy` i wpisanym 1 )

Tak myslę, było by najlepiej

EDIT : Nie zobaczyłem daty tematu, ale może komuś się przyda winksmiley.jpg
golaod
Twoje rozwiązanie jest moim zdaniem zbyt słabe. Lepszym jest jak ktoś wspomniał zrobienie dodatkowej tabeli dla nieprzeczytanych bo:
- można to podpisać pod wielu userów
- łatwiejsze w modyfikacji ( nie wiem jak długo programujesz ale dodawanie kolejnych kolumn bo się wpadło na pomysł dorobienia czegoś to....maraton zakończony po 50 metrach)

Poza tym robiąc left join dostaje się ładne dane tzn dodatkowa kolumna z null lub konkretnym id co jest dla nas pomocne:
  1. <?php
  2. if( ! is_null( $kolumna_zjoinowana ) ) {
  3.  echo 'pogrubione';
  4. }
  5. ?>

Owszem rozwiązanie z dodatkową tabelką niesie ze sobą minus w postaci dodawania przy nowej wiadomości dodatkowego rekordu do tej tabelki, że nie jest ona przeczytana (lub wywoływanie triggera po insercie). Czym jednak ta drobnostka jest ?
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.