Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zliczanie odsłon konkretnego artykuły, czy to licznik kliknięć ??
primo
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

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


Proszę o podpowiedź w sprawie następującego rozwiązania.

Mam jakiś tam artykuł trzymany w bazie danych, na stronie wyświetlana jest tylko jego zajawka. Gdy kliknie się "czytaj dalej" to dopiero otwiera się cały tekst danego artykułu. W momencie kliknięcia ma być dodawana kolejna odsłona danego artykułu. Jak proponujecie wykonać coś takiego questionmark.gif Czy wykorzystalibyście do tego baze mysql czy pliki questionmark.gif I jak powinno wyglądać zapytanie odnośnie wstawienia do bazy (jaki znacznik powinien być pobierany, aby było wiadomo co ma być dodane do bazy). Zaproponujcie jaką strukturę powinna mieć baza.

pozdrawiam


--------------------
Bieganie jest tym co kocham najbardziej, jest dla mnie powietrzem w moich płucach, krwią płynącą w żyłach, dawką endorfin, źródłem szczęścia i celem samym w sobie... A w skrócie to jestem uzależniony od biegania.
primo
gg1148730
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Jeżeli masz artykuł przechowywany w bazie danych to dodaj do tabeli z artykułem pole 'licznik' typu INT i z każdą odsłoną zwiększaj licznik o jeden.


--------------------
404
Go to the top of the page
+Quote Post
primo
post
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

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


Cytat(Cienki1980 @ 12.02.2007, 21:26:36 ) *
Jeżeli masz artykuł przechowywany w bazie danych to dodaj do tabeli z artykułem pole 'licznik' typu INT i z każdą odsłoną zwiększaj licznik o jeden.


A co jeśli chcę zliczać liczbę kliknięć nie tylko w strefie news, ale i artykuły, hasła, cytaty, biblioteczka questionmark.gif Każdy z tych działów to oddzielna tabela w bazie danych o swojej strukturze. Czy w związku z tym lepszym rozwiązaniem będzie utworzenie osobnej tabeli i trzymanie tam indeksów głównych z tych tabel questionmark.gif Co masz na myśli mówiąc: "z każdą odsłoną zwiększaj licznik o jeden" questionmark.gif Czy do znacznika <a hre> mam dodać jakiś kod ? Czy jak to ma być rozpoznawane questionmark.gif

  1. CREATE TABLE `bieg_slowniczek_licznik_klikniec` (
  2. `licznik_klikniec` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `ksiazka_id` INT( 11 ) NOT NULL ,
  4. `artykul_id` INT( 11 ) NOT NULL ,
  5. `cytat_id` INT( 11 ) NOT NULL ,
  6. `id_slowniczka` INT( 11 ) NOT NULL ,
  7. PRIMARY KEY ( `licznik_klikniec` )
  8. ) TYPE = MYISAM ;


Na początek mam utworzoną już tabelę. Coś sugerujecie na tym etapie questionmark.gif


--------------------
Bieganie jest tym co kocham najbardziej, jest dla mnie powietrzem w moich płucach, krwią płynącą w żyłach, dawką endorfin, źródłem szczęścia i celem samym w sobie... A w skrócie to jestem uzależniony od biegania.
primo
gg1148730
Go to the top of the page
+Quote Post
frickle
post
Post #4





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 20.04.2006
Skąd: Kraków/Lublin/Lubartów

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


Jeżeli masz jakiś kod który wyświetla cały artykuł czy inną treść, to pewnie numer tego artykułu przekazujesz w linku. Więc zmontuj sobie funkcję której paramentrem będzie numer artykułu i dodatkową tabelę w bazie gdzie przechowasz id artykuu i jego licznik. Przed kodem wyświetlającym artykuł wstawisz odwołanie do funkcji z odpowiednim paramentrem (pobranym z tablicy $_GET) a funkcja sprawdzi czy w tabeli już wystepuje ten id, jeśli tak to zmodyfikuje wpis licznika, a jeśli nie to doda rekord z licznikiem równym 1 i po kłopocie.

Jeżeli natomiast chesz zliczać różne treści (artykuły, newsy itd) to wypada albo zrobić funkcję i tabelę dla każdego rodzaju, albo do tabeli dodać pole rodzaj a w funkcji dodatkowy parametr określający rodzaj. Tyle że wtedy w linku musisz przekazywać rodzaj wpisu. A poza tym to już tylko modyfikacja zapytań w funkcji i również z głowy.

  1. CREATE TABLE liczniki (
  2. id_licznika INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. id_zasobu INT(11) NOT NULL,
  4. rodzaj TINYINT NOT NULL DEFAULT = 0,
  5. licznik INT(11) DEFAULT 1);


  1. <?php
  2. function koryguj_licznik($idzasobu, $rodzajzasobu)
  3.  {
  4. //... łączenie z bazą ...
  5. $query = 'select * from liczniki where id_zasobu = '.$_GET['id'].' and rodzaj = .'$_GET['rodzaj'];
  6. $wynik = mysql_query($query);
  7. $ile = mysql_num_rows($wynik);
  8. if($ile > 0)
  9.  {
  10. $licznik = mysql_fetch_assoc($wynik);
  11. $zliczone = $licznik['licznik'];
  12. $zliczone++;
  13. $query = 'update liczniki set licznik = '.$zliczone.' where id_zasobu = '.$_GET['id'].' and rodzaj = .'$_GET['rodzaj'];
  14. mysql_query($query);
  15.  }
  16. else
  17.  {
  18. $query = "insert into liczniki (idzasobu, rodzaj) values (".$_GET['id'].",".$_GET['rodzaj'].")";
  19.  }
  20.  }
  21. ?>

Pisane z palca więc nie wiem czy zadziała, ale powinno.

Ten post edytował frickle 14.02.2007, 11:01:44


--------------------
Lepiej kijek obcinkować niż go potem pogrubasić.
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 Aktualny czas: 22.08.2025 - 01:41