Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: licznik cookie +mysql + dzienny
Forum PHP.pl > Forum > Przedszkole
Gligamesh
witam, szukalem na forum znalazle m http://forum.php.pl/index.php?showtopic=10...licznik+dzienny ale tamten link juz nie dziala sad.gif

czy mogl by mi ktos wskazac jakz robic licznik dzienny oparty na mysqlu i zabezpieczony odswiezaniem przez cookie. chcialbym zeby w bazie byl zapiswayny dzien (data) i ilosc odslon kolejny dzien kolejny rekord itd zeby stworzyc prosta statystyke. Porilbym po chlopsku gdyz dopiero zaczynam z sqlem sad.gif....z gory dzieki
sf
wejscie na strone....

jesli jest cookie to nic nie rob

w innym przypadku sprawdz czy to nowy dzien... porownujac ostatnia wprowadzona date z obecna (zapytanie do bazy)

jesli nowa to stworz nowy wpis i ustaw 1, jesli obecna to poprostu zwieksz licznik

wyslij cookie

taka mam wizje winksmiley.jpg
Gligamesh
ok z cookie to nie ma porbleu wiem jak zrobic ale nie wiem jak zrobic z ta reszta sad.gif
sf
To moze poprostu zajrzec do manuala? mysql_connect " title="Zobacz w manualu PHP" target="_manual, mysql_select_db" title="Zobacz w manualu PHP" target="_manual i mysql_query" title="Zobacz w manualu PHP" target="_manual

Jesli nie wiesz jakie zapytanie trzeba wyslac do mysql to potem ktos Ci pewnie poda. Tylko najpierw zrob COS tongue.gif
mhs
przede wszystkim zrob to co potrafisz napisac.. nastepnie przedstaw swoja prace i powiedz czego nie potrafisz dalej ruszyc....

algorytm podany przez sf na poczatek moze byc wiec pisz.. i przedstaw to czego nie umiesz napisac gdyz w przeciwnym wypadku to mozemy sobie caly dzien gadac
Gligamesh
tyle zrobie od reki

  1. <?php
  2. setcookie(&#092;"visited\", \"1\", time()+10); 
  3.  
  4. $db = mysql_connect (&#092;"localhost\", \"xxx\", \"xxx\"); 
  5. mysql_select_db (&#092;"licznik\"); 
  6.  
  7. if($visited!=&#092;"1\") 
  8. {
  9. //dodamie +1
  10. }
  11. else
  12. {
  13.  
  14. mysql_query (&#092;"INSERT INTO dzienny VALUES ('', '1')\");
  15.  
  16. }
  17.  
  18. mysql_close ($db);
  19. ?>


na reszte poprosze wskazowki albo jakies przyklady bo nie mam pojecia jak
mhs
Kod
mysql> DESCRIBE wizyty;
+-------------+------------------+------+-----+---------+----------------+
| Field       | Type             | Null | Key | Default | Extra          |
+-------------+------------------+------+-----+---------+----------------+
| wizyta_id   | int(10) unsigned |      | PRI | NULL    | auto_increment |
| wizyta_czas | date             | YES  |     | NULL    |                |
+-------------+------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)



  1. <?php
  2. // nawiazanie polaczenia z serwerem bazy danych
  3. $polaczenie = mysql_pconnect('localhost', '', '');
  4.  
  5.  
  6. // sprawdzam czy zostalo juz utworzone ciasteczko o nazwie wizyta
  7. if ($_COOKIE['wizyta'] != 1) {
  8. // ciasteczko nie zostalo utworzone wiec uzytkownik nie odwiedzal na dzisiaj 
  9. if ($polaczenie) {
  10.  
  11. // przygotowanie zapytania dodajacego nowa odslone do bazy danych
  12. $zapytanie = '
  13. INSERT INTO 
  14. wizyty (wizyta_czas)
  15. VALUES
  16. (CURRENT_DATE)';
  17.  
  18. $wynikZapytania = mysql_query($zapytanie);
  19.  
  20. // sprawdzenie czy wpis zostal dodany
  21. if ($wynikZapytania) {
  22. // sprawdzam ile czasu zostalo jeszcze do konca dnia
  23. $ile = mktime(23, 59, 59, date('m'), date('d'), date('Y')) - time();
  24.  
  25. // utworzenie ciasteczka, wazne do konca doby
  26. setcookie('wizyta', 1, time() + $ile);
  27. }
  28. }
  29. }
  30.  
  31.  
  32. // pobranie liczby osob, ktore dzisiaj odwiedzily strone - przygotowanie zapytania
  33. $zapytanie = '
  34. SELECT
  35. COUNT(*) AS ile
  36. FROM
  37. wizyty
  38. WHERE
  39. wizyta_czas = CURRENT_DATE()';
  40.  
  41. $wynikZapytania = mysql_query($zapytanie);
  42.  
  43. if ($wynikZapytania) {
  44. $rekord = mysql_fetch_assoc($wynikZapytania);
  45.  
  46. echo 'W dniu dzisiejszy stronę odwiedziło: '.$rekord['ile'];
  47. }
  48. ?>



powyzej prezentuje Ci gotowy skrypt... w komentarzu masz troche wyjasnione co sie dzieje... prosze - sprawdz go czy dziala dokladnie tak jak powinien, a przede wszystkim sprobuj sam napisac...

rozwiazanie Twoje problemu nie jest moze idealne ale powinno zaprezentowac Ci idee postepowania
Gligamesh
ok dzial to, ale czy jest to ekonomiczen rozwaiznie questionmark.gif
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.