Licznik z MySQL odporny na odświeżanie

Rozmowy z innymi użytkownikami forum na różne tematy, niekoniecznie związane ze skryptem phpBB.
jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Licznik z MySQL odporny na odświeżanie

Post autor: jaroslw » 17 lutego 2007, 18:41

Witam, pisałem kiedyś o problemie z licznikiem odpornym na odświeżanie działającym na plikach .txt. Teraz problem jest podobny ale trochę inny, a mianowicie mam kod PHP + MySQL dla licznika ale nie jest on odporny na odświeżanie. Proszę o pomoc osoby bardziej znające się na PHP. Skrycik wygląda tak:

Kod: Zaznacz cały

<?php
			$serwer = 'hodt'; // Twój serwer MySQL
			$login = 'login'; // Twój login do bazy danych
			$haslo = 'hasło'; // Twoje hasło do bazy
			$baza = 'baza'; // Nazwa twojej bazy danych

			$polaczenie = mysql_connect($serwer, $login, $haslo)
			   or die(mysql_error()); // Połączenie z bazą danych MySQL

			mysql_select_db($baza, $polaczenie)
			  or die(mysql_error()); // Wybór bazy danych

			$rezultat = mysql_query("SELECT * FROM licznik_odwiedzin")
			   or die(mysql_error()); // Pobranie danych
			$pd = mysql_fetch_array($rezultat);

			$lo = $pd["ilosc_odwiedzin"]; // Zapis danych do zmiennej $lo

			$lo = $lo + 1; // Inkrementacja zmiennej $lo

			echo 'Ilo¶ć odwiedzin: <b>' . $lo . '</b><br />'; // Wyświetlenie stanu licznika

			$sql = "DELETE FROM licznik_odwiedzin";
			$sql1 = "INSERT IGNORE INTO licznik_odwiedzin (ilosc_odwiedzin) " .
			        "VALUES (" . $lo . ")";

			$rezultat = mysql_query($sql)
			    or die(mysql_error()); // Zapisanie stanu licznika w bazie danych

			$rezultat = mysql_query($sql1)
			    or die(mysql_error());
			?>
Zapytanie SQL:

Kod: Zaznacz cały

CREATE TABLE licznik_odwiedzin (
    ilosc_odwiedzin int(10) NOT NULL auto_increment,
    PRIMARY KEY (ilosc_odwiedzin)
);
Pobierz styl: we_universalwe_clearblue
Nowości i aktualizacje: FacebookGoogle+Twitter

Awatar użytkownika
daroPL
Zasłużony
Posty: 4564
Rejestracja: 24 czerwca 2005, 13:36
Lokalizacja: Poznań
Kontakt:

Post autor: daroPL » 18 lutego 2007, 13:34

[php]<?
$serwer = 'hodt'; // Twój serwer MySQL
$login = 'login'; // Twój login do bazy danych
$haslo = 'hasło'; // Twoje hasło do bazy
$baza = 'baza'; // Nazwa twojej bazy danych

$polaczenie = mysql_connect($serwer, $login, $haslo)
or die(mysql_error()); // Połączenie z bazą danych MySQL

mysql_select_db($baza, $polaczenie)
or die(mysql_error()); // Wybór bazy danych

$rezultat = mysql_query("SELECT * FROM licznik_odwiedzin")
or die(mysql_error()); // Pobranie danych
$pd = mysql_fetch_array($rezultat);

$lo = $pd['ilosc_odwiedzin']; // Zapis danych do zmiennej $lo

$lo++;

echo 'Ilo¶ć odwiedzin: <b>' . $lo . '</b><br />'; // Wyświetlenie stanu licznika

if(!$_COOKIE['licznik'])
{
setcookie('licznik', 1, time()+3600);
$sql1 = "UPDATE licznik_odwiedzin SET ilosc_odwiedzin = " . $lo . " LIMIT 1";

$rezultat = mysql_query($sql1)
or die(mysql_error());
}
?>[/php]

Kod: Zaznacz cały

CREATE TABLE licznik_odwiedzin (
    ilosc_odwiedzin int(10) NOT NULL,
    PRIMARY KEY (ilosc_odwiedzin)
);
robione na szybko ale powinno ruszyć :)
Ostatnio zmieniony 09 sierpnia 2007, 13:05 przez daroPL, łącznie zmieniany 1 raz.

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Post autor: jaroslw » 18 lutego 2007, 13:54

Dzięki, wprawdzie otrzymałem już chwilę wcześniej pomoc na innym forum ale i tak plusik dla Ciebie :)
Pobierz styl: we_universalwe_clearblue
Nowości i aktualizacje: FacebookGoogle+Twitter

ODPOWIEDZ

Wróć do „Ogólne dyskusje”