[PHP][MySQL} Licznik wyświetleń

0

Witam,
Jak zrobić licznik wyświetleń strony (a konkretniej - licznik, zliczający ile ludzi kliknęło w hiperlinka) z użyiem PHP i MySQL'a? Wkleił bym jakiś kod, żeby nie było, że idę na łatwiznę, lecz żadnego nie napisałem :) Nie mam wcale pomysłów jak to zrobić, w google też nic nie znalazłem. Pomożecie?

0

Link kieruje do skryptu php, ktory wysyła przekierowanie zliczając jednocześnie kliknięcie.

0
$redirectTo = $_GET['id'];
if (!is_numeric($redirectTo)) exit('lol');
$przekierujDo = mysql_fetch_row($mysql->query('SELECT link FROM przekierowania WHERE id = ' . $redirectTo));
$przekierujDo = $przekierujDo[0];

$mysql->query('UPDATE przekierowania SET klikniecia = klikniecia + 1 WHERE id ' . $redirectTo);
header('Location: ' . $przekierujDo);
exit();

To jest pseudokod oczywiście. W skrócie:

  1. User wywołuje skrypt zlicz.php?id=23
  2. Skrypt w pierwszym zapytaniu pobiera z bazy link jaki jest ukryty pod tym numerkiem
  3. W drugim zapytaniu zwiększa dla tego linku kliknięcia o 1.
  4. Potem za pomocą nagłówka przekierowuje na adres pobrany w punkcie #2
0

Dzięki :) Mógłbyś tylko wytłumaczyć, o co chodzi z tym "zlicz.php?id=23"?

0

Taki skrypt. A parametr ID przekazany metodą GET tak jak w 1 linii mojego przykładu.

0

Tak, tylko że w takim razie jak nazwać plik php? Po prostu zlicz.php?id=23?

0

Plik PHP sie nazywa po prostu zlicz.php. Tylko w przeglądarce mu nadajesz argument metodą GET.

Jeśli napiszesz np.:
lol.php?nazwa=dupa8&ident=1234
To w skrypcie lol.php będziesz miał zapisane:

$_GET['nazwa'] //będzie wynosiło dupa8
$_GET['ident'] //będzie wynosiło 1234

Taka metoda podawania danych do skryptu

0

Zdecyduj się. MySQL i MySQLi to nie to samo.

$mysql_query

Tu niepotrzebnie znaczek dolara. No i MUSISZ do cholery przekazać ten identyfikator.
Jeśli masz w tabeli:

+-----------------------------+
|ID |Link          |Kliknięcia|
|1  |lol.php       |0         |
|2  |omfg.php      |12        |
+-----------------------------+

I chcesz przekierować docelowo do pliku omfg.php to musisz dać:

<a href="zlicz.php?id=2">Link</a>
0

W porządku, już rozumiem jak to działa. Poprawiłem też kod:

     $redirectTo = $_GET['id'];
     $zapytanie = mysql_query("SELECT Link FROM Przekierowania WHERE ID = ".$redirectTo);
     $przekierowanie = mysql_fetch_row($zapytanie);
     $przekierowanie = $przekierowanie[0];
     mysql_query("UPDATE Przekierowania SET Kliknięcia = Kliknięcia + 1 WHERE ID = ".$redirectTo);
     header('Location: '.$przekierowanie);
     exit();

Tylko że wyskakuje jeszcze 1 błąd: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/***/public_html/zlicz.php on line 12.

Wpisałem takie samo zapytanie w phpMyAdmin i wszystko działało dobrze, więc czemu tu nie działa?

1 użytkowników online, w tym zalogowanych: 0, gości: 1