Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zliczanie kliknięć
kropamk
post
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


Witam.

Chcę dodać na stronę coś w stylu "lubię to" ale nic związanego z facebook'iem. Mam prosty skrypt, zlicza mi ale nie aktualizuje kliknięć dla danego ID kliknięcia, tylko tworzy nowy wiersz z takim samym ID i kliknięciem jednym.

Oto kod:
  1. <?php
  2.  
  3. $id=$_GET["id"];
  4. if ($id) {
  5. $baza = mysql_connect("localhost", "root", "haslo");
  6. mysql_select_db("db",$baza);
  7. $wynik=mysql_query("SELECT link FROM linki WHERE id='$id'");
  8. if (mysql_num_rows($wynik)>0) {
  9. $link = mysql_fetch_row($wynik);
  10. $wynik=mysql_query("SELECT * FROM kliki
  11. WHERE id='$id' and data=NOW()");
  12. if (mysql_num_rows($wynik)==0) {
  13. mysql_query("INSERT INTO kliki (id, licznik, data)
  14. VALUES($id, licznik+1, NOW())");
  15. } else {
  16. mysql_query("UPDATE kliki SET licznik=licznik+1
  17. WHERE id=$id and data=NOW()");
  18. }
  19. }
  20. mysql_close($baza);
  21. }
  22. if ($link[0]<>"") {
  23. header("location: $link[0]");
  24. } else {
  25. header("location: index.php");
  26. }
  27. ?>


a index.php gdzie mam link zliczający no i wartość wyswietlaną wygląda tak:
  1. <a href="go.php?id=2" target="_blank">skocz do porad</a> <!-- link naliczający -->
  2.  
  3. <?php
  4. $db = new connectDB();
  5. $db->db_connection();
  6.  
  7. $select_klik = mysql_query("SELECT licznik FROM kliki WHERE id=2");
  8.  
  9. $kliki = mysql_fetch_assoc($select_klik);
  10.  
  11. echo' '.$kliki['licznik'].' ';
  12. ?>


Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$wynik=mysql_query("SELECT * FROM kliki
WHERE id='$id' and data=NOW()");
Trudno, żeby istaniał rekord z danym ID i godziną która właśnie dopiero co nastąpiła.
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
kropamk
post
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


Faktycznie, masz racje.

Jak już się pytam to jeszcze interesuje mnie możliwość kliknięcie tylko raz przez danego użytkownika. Jak wprowadzić taki limit?
Go to the top of the page
+Quote Post
synec
post
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 2
Dołączył: 26.10.2009

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


  1. mysql_query("UPDATE kliki SET licznik=licznik+1
  2. WHERE id=$id and data=NOW()");

To też może nie udać Ci się wykonać. Musisz zmienić koncepcję z tą datą, albo podstawić ją pod zmienną i używać zmiennej.

Cytat(kropamk @ 7.12.2011, 10:06:33 ) *
Faktycznie, masz racje.

Jak już się pytam to jeszcze interesuje mnie możliwość kliknięcie tylko raz przez danego użytkownika. Jak wprowadzić taki limit?

A użytkownik który klika musi być zalogowany czy może to zrobić dowolna osoba?
Go to the top of the page
+Quote Post
kropamk
post
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


Tylko dla zalogowanych jest możliwość "polubienie".
Go to the top of the page
+Quote Post
synec
post
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 2
Dołączył: 26.10.2009

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


Cytat(kropamk @ 7.12.2011, 10:26:48 ) *
Tylko dla zalogowanych jest możliwość "polubienie".

No to jeżeli masz tabelę w której będziesz przetrzymywał ID użytkownika i ID artykuły/obrazka co tam masz, którego on ma lubić. Następnie po kliknięciu przez usera sprawdzasz w tej tabeli czy już jego ID istnieje dla tego artykułu, jeżeli nie istnieje to dodajesz do tej tabeli nowy wpis, jeżeli istnieje to wyświetlasz że już to lubi.

Ten post edytował synec 7.12.2011, 10:44:14
Go to the top of the page
+Quote Post
kropamk
post
Post #7





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


Czy mogę to zrobić w taki sposób ?

  1. <?php
  2. $username = $_GET['User_Id']);
  3. $baza = mysql_connect("localhost", "root", "haslo");
  4. mysql_select_db("db",$baza);
  5.  
  6. if ($username) {
  7.  
  8. $duplicate = mysql_query("SELECT * FROM users_klik WHERE User_Id='$username' ");
  9. $num_rows = mysql_num_rows($duplicate);
  10. // SPRAWDZA CZY UŻYTKOWNIK JUŻ "POLUBIŁ"
  11. if ($num_rows){
  12. echo '<div id="message">Już lubisz to.</div>';
  13. }
  14. mysql_close($baza);
  15. }
  16.  
  17. $id=$_GET["Klik_Id"];
  18.  
  19. if ($id) {
  20. $baza = mysql_connect("localhost", "root", "haslo");
  21. mysql_select_db("db",$baza);
  22.  
  23.  
  24.  
  25. $wynik=mysql_query("SELECT link FROM linki WHERE Klik_Id='$id'");
  26. if (mysql_num_rows($wynik)>0) {
  27. $link = mysql_fetch_row($wynik);
  28. $wynik=mysql_query("SELECT * FROM kliki
  29. WHERE Klik_Id='$id'");
  30. if (mysql_num_rows($wynik)==0) {
  31. mysql_query("INSERT INTO kliki (Klik_Id, licznik, data)
  32. VALUES($id, licznik+1)");
  33. } else {
  34. mysql_query("UPDATE kliki SET licznik=licznik+1
  35. WHERE Klik_Id=$id");
  36. }
  37. }
  38. mysql_close($baza);
  39. }
  40. if ($link[0]<>"") {
  41. header("location: $link[0]");
  42. } else {
  43. header("location: index.php");
  44. }
  45. ?>
  46.  


Moje table to
Klik (Klik_Id , data , licznik) oraz users_klik (User_klik_Id , User_Id , Klik_Id) oraz users(User_Id , Login , Password , Mail)

Go to the top of the page
+Quote Post
synec
post
Post #8





Grupa: Zarejestrowani
Postów: 14
Pomógł: 2
Dołączył: 26.10.2009

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


Cytat
Klik (Klik_Id , data , licznik) oraz users_klik (User_klik_Id , User_Id , Klik_Id) oraz users(User_Id , Login , Password , Mail)

A nie da rady zrobić tak?
users_klik ( User_Id , Klik_Id, data) oraz users(User_Id , Login , Password , Mail)
Go to the top of the page
+Quote Post
kropamk
post
Post #9





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


Mogą być i takie tabele. Teraz tylko jak to zrobić? Tak jak wyżej napisałem ? Tylko nie wiem jak sprawdzić kto jest zalogowany. Po prostu potrzebuje wskazówki (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
synec
post
Post #10





Grupa: Zarejestrowani
Postów: 14
Pomógł: 2
Dołączył: 26.10.2009

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


Cytat
Tylko nie wiem jak sprawdzić kto jest zalogowany.

O chłopie....
A tak w ogóle to logujesz już użytkowników?
Go to the top of the page
+Quote Post
kropamk
post
Post #11





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


hehe ok przesadziłem, wiem jak to rozwiązać. Jak już zrobię dam znać chociaż mam nadzieję, że nie pojawią mi się żadne błędy. Ok zabieram się do pracy (IMG:style_emoticons/default/smile.gif)

Temat do zamknięcia, udało się i wszystko działa (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

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: 24.08.2025 - 00:37