odświeżam temat, również chciałbym osiągnąć ten sam efekt
ja myślałem nad takim rozwiązaniem (które już było przedstawione) że są 3 kolumny
id, user_id, unread_post
z tym że jak ktoś słusznie zauważył - po napisaniu posta tworzy sie tyle rekordów co ilość użytkowników
inna możliwość (którą sami ocencie, niewiem czy wypali)
do tabeli userów dodać kolumne unread_posts, i dodawać do niej po przecinku id postów, wtedy zapytanie będzie jedno
UPDATE `users` SET `unread_posts`=`unread_posts`+',(id_posta)' WHERE `user_id`!=(id_uzytkownika_piszacego_post)
objaśnienie do zapytania : 1. niewiem czy [unread_posts`=`unread_posts`+',(id_posta)' to prawidłowe łączenie stringów w sql, jeśli nie to poprawcie. 2. `user_id`!=(id_uzytkownika_piszacego_post) - zaladam że user który właśnie wysłał post automatycznie go przeczytał.
korzystanie z takiej bazy nie przeczytach postów:
pobieranie wiersza, następnie rozdzielenie na tablicy przy pomocy
<?php
$unreaded_posts=explode(',', $row['unread_posts']); ?>
i dalej już chyba wiadomo
teraz po wejściu do każdego tematu, (zakładam że id postów są w tablicy $posts_id)
<?php
$unreaded_posts-=$posts_id;
$unreaded_posts_string=implode(',', $unreaded_posts); ?>
-nie jestem pewny czy tego typu odejmowanie tablicy od tablicy jest prawidłowe
i zapytanie
UPDATE `users` SET `unreaded_posts`='(tutaj zmienna $unreaded_posts_string)' WHERE user_id=(id zarejestrowanego usera)