Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Licznik kliknięć podpiety pod link pobierany z Mysql.
Forum PHP.pl > Forum > PHP
ddzawias
Witam,

jestem grafikiem więc PHP to dla mnie studnia wiedzy w której zaledwie umoczyłem jeden palec.
Bardzo proszę speców o pomoc.

Potrzebuje liczyć kliknięcia w link który jest pobierany dynamicznie z bazy Mysql.
Chciałbym by po kliknięciu skrypt zwiększał o 1 liczbę w kolumnie "klik", w rekordzie z którego został pobrany link.

Z góry dziękuje za wszelką pomoc.


  1. <?
  2. mysql_connect("","","");
  3.  
  4. $kodmiasta=3;
  5. $zapytanie="SELECT id, name, link, star, description, price, photo FROM offerts WHERE miasto='".$kodmiasta."' AND price<=500 ORDER BY price";
  6. $zapytaniesql=mysql_query($zapytanie);
  7.  
  8. while($rekord = mysql_fetch_array($zapytaniesql))
  9. {
  10. $id=$rekord['id'];
  11. $name=$rekord['name'];
  12. $price=$rekord['price'];
  13. $link=$rekord['link'];
  14. $star=$rekord['star'];
  15. $photo=$rekord['photo'];
  16. $description=$rekord['description'];
  17.  
  18. echo"<div id=hotel>
  19. <div id=hotel_obrazek><img alt=\"Hotel ".$name.", Londyn\" title=\"Hotel ".$name.", Londyn\" src=hotele_foto/".$photo.".jpg border=0 width=77 height=70></div>
  20. <div id=hotel_nazwa>".$name."<br /> ";
  21. for($x = 1; $x<=$star; $x++){echo "<img src=gwiazdka.png>"; }
  22. echo"</div><div id=hotel_opis>".$description."</div>
  23. <div id=hotel_cena>Pokój 2-osobowy: ".$price.",-PLN</div>
  24. <div id=hotel_wiecej>
  25. <a href=".$link.">LINK DO LICZENIA KLIKNIĘĆ</a>
  26.  
  27. </div>
  28. </div>";
  29. echo $formularz;
  30. }
  31. ?>
thek
Problem ten można rozwiązać zdarzeniem onclick w JavaScripcie. Musisz tylko napisać skrypt, który będzie wykonywał inkrementację licznika w bazie po kliknięciu. Powinieneś znaleźć wiele takich w necie smile.gif
ddzawias
W pierwszej kolejności bardzo dziękuje za pomoc!

Przyjmijmy, że inkrementacja wygląda tak:

  1. UPDATE offerts SET klik=klik+1 WHERE id='".$id."';


Gdybyś mógł mi wyjaśnić dokładniej jak to podpiąć pod ten onclick byłbym bardzo zobowiązany.
Thorang Hoog
Cytat(thek @ 14.12.2009, 20:55:13 ) *
Problem ten można rozwiązać zdarzeniem onclick w JavaScripcie. ...


A co jeśli przeglądarka nie obsługuje JavaScript? tongue.gif

Najlepiej zrobić link do skryptu php na serwerze który doda "klika" do twojej bazy danych i przekieruje na stronę pobraną z bazy danych.

To twój stary plik trochę zmieniony:
  1. <?
  2. mysql_connect("","","");
  3.  
  4. $kodmiasta=3;
  5. $zapytanie="SELECT id, name, link, star, description, price, photo FROM offerts WHERE miasto='".$kodmiasta."' AND price<=500 ORDER BY price";
  6. $zapytaniesql=mysql_query($zapytanie);
  7.  
  8. while($rekord = mysql_fetch_array($zapytaniesql))
  9. {
  10. $id=$rekord['id'];
  11. $name=$rekord['name'];
  12. $price=$rekord['price'];
  13. $link=$rekord['link'];
  14. $star=$rekord['star'];
  15. $photo=$rekord['photo'];
  16. $description=$rekord['description'];
  17.  
  18. echo"<div id=hotel>
  19. <div id=hotel_obrazek><img alt=\"Hotel ".$name.", Londyn\" title=\"Hotel ".$name.", Londyn\" src=hotele_foto/".$photo.".jpg border=0 width=77 height=70></div>
  20. <div id=hotel_nazwa>".$name."<br /> ";
  21. for($x = 1; $x<=$star; $x++){echo "<img src=gwiazdka.png>"; }
  22. echo"</div><div id=hotel_opis>".$description."</div>
  23. <div id=hotel_cena>Pokój 2-osobowy: ".$price.",-PLN</div>
  24. <div id=hotel_wiecej>";
  25. // <a href=".$link.">LINK DO LICZENIA KLIKNIĘĆ</a>
  26. echo "<a href=link.php?id=".$id.">LINK DO LICZENIA KLIKNIĘĆ</a>";
  27. // link do skryptu zliczającego kliknięcia
  28. // i przekierowującego do strony właściwej
  29. echo"</div></div>";
  30. echo $formularz;
  31. }
  32. ?>


A to przykład skryptu zwiększającego kliknięcia.

  1. <?PHP
  2. // plik link.php
  3. // wywoływany za pomocą linka:
  4. // <a href="link.php?id=##">klik</a>
  5. // ## - numer identyfikacyjny linka
  6. mysql_connect("","","");
  7.  
  8.  
  9. $id = (int) $_GET['id'];
  10. // nieprawidłowy numer id wyświetlenie błędu 404 strona nieodnaleziona
  11. if(!$id) header("HTTP/1.0 404");
  12.  
  13. $zapytanie = "SELECT link FROM offerts WHERE id='".$id."' LIMIT 1;";
  14. $zapytaniesql = mysql_query($zapytanie);
  15.  
  16. {
  17. list($link) = mysql_fetch_array($zapytaniesql)
  18. $zapytanie = "UPDATE offerts SET klik=klik+1 WHERE id='".$id."';";
  19. mysql_query($zapytanie);// dodanie klika
  20. header("Location: ".$link); // przejście do strony z linkiem
  21. }
  22. // błąd wczytania linku
  23. // brak pozycji w bazie danych
  24. else header("HTTP/1.0 404");
  25. ?>


W prawdzie nie wiem jak takie rozwiązanie działa z pozycjonowaniem stron dry.gif
ale działa ;P
ddzawias
Ślicznie dziękuje, jutro to zamontuje i napisze jak wrażenia.

Jeżeli to myli roboty które nie podążają za takim linkiem to jeszcze lepiej!
Mamy ponad tysiąc takich linków do innego serwisu na którego pozycjonowaniu nam nie zależy i boimy się, że nasza strona jest traktowana jako farma linków.
Thorang Hoog
Cytat(ddzawias @ 14.12.2009, 21:56:16 ) *
Mamy ponad tysiąc takich linków do innego serwisu na którego pozycjonowaniu nam nie zależy i boimy się, że nasza strona jest traktowana jako farma linków.


to do linku dodaj atrybut: rel="nofollow"
winksmiley.jpg
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.