Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP,MySQL] Tworzenie własnego forum - zliczanie unikalnych odsłon
kurkusmaximus
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.01.2010
Skąd: Sopot

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


Witajcie!

Jestem na etapie tworzenia własnego forum. Większość zadań jakie sobie postawiłem wykonałem, lecz pozostało kilka, wydawać by się mogło bardzo łatwych, za które nie wiem jak się zabrać.
W spisie tematów posiadam kolumnę, w której wyświetlam liczbę postów i liczbę odsłon danego tematu. Chciałbym, by po wejściu w dany temat skrypt sprawdzał czy użytkownik (zalogowany bądź nie) już odwiedził ten temat, jeśli nie to licznik odsłon zwiększałby się o 1. Równocześnie chciałbym, by użytkownik wchodząc na stronę ze spisem tematów był poinformowany o nowym poście w temacie poprzez zmianę grafiki przy tytule tematu.

Baza danych
W tabeli "forum_tematy" posiadam pola:
nr------nr_dzialu------przyjazny_link------nazwa------opis------autor------data------ilosc_postow------ilosc_odslon

W jaki sposób zaplanować tabele w bazie danych, dzięki którym mógłbym wykonać te zadania?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kurkusmaximus
post
Post #2





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.01.2010
Skąd: Sopot

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


Rozwiązany.

#odsłony
tabela-wszystko int: nr---nr_tematu---ip

  1. if( $_SERVER['HTTP_X_FORWARDED_FOR'] ){
  2. $ip_prawdziwe = $_SERVER['HTTP_X_FORWARDED_FOR'];
  3. }else{
  4. $ip_prawdziwe = $_SERVER['REMOTE_ADDR'];
  5. }
  6.  
  7. $long = ip2long($ip_prawdziwe);
  8.  
  9. if( !($long == -1 || $long === FALSE) ){
  10. $ip = sprintf("%u\n", $long);
  11.  
  12. $wynik = mysql_query("SELECT * FROM forum_odslony WHERE nr_tematu = '$t' AND ip = '$ip';") or die("błąd w pytaniu");
  13. $num_rows = mysql_num_rows($wynik);
  14.  
  15. if( $num_rows == 0 ){
  16. mysql_query("INSERT INTO forum_odslony (nr_tematu, ip) VALUES ('$t', '$ip');")or die("błąd w pytaniu");
  17. mysql_query("UPDATE forum_tematy SET ilosc_odslon = ilosc_odslon+1 WHERE nr = '$t';") or die("błąd w pytaniu");
  18. }
  19. }


#nowy post
tabela-wszystko int: nr---uzytkownik---nr_tematu---data

Po wejściu w temat sprawdzane jest czy istnieje wpis uzytkownik+nr_tematu, jesli nie, to taki wpis tworzy przypisując datę ostatniego postu. Jeżeli istnieje to wyciąga datę i porównuje z ostatnim postem w temacie. Jeśli data ostatniego postu jest większa niż ta zapisana w tabeli to aktualizuje wpis uzytkownik+nr_tematu+data.
po wejściu w wpis tematów sprawdzane jest czy data ostatniego postu jest większa niż ta zapisana w tabeli i "maluje" odpowiedni obrazek.

Idę spać.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 22:15