[PHP] Licznik odwiedzin. Wyświetlenie "wczoraj"


(felixik) #1

Witam, pisząc licznik odwiedzin napotkałem problem nie do przeskoczenia. Mianowicie licznik wyświetlając ilość userów z dnia poprzedniego pobiera jedynie pierwszy rekord z tablicy. Pole z datą jest w typie DATE. Chodzi mi jedynie o funkcję licznik_wczoraj. Poniżej kod licznika

<?

$date = new DateTime();


function licznik_dzis()

{

	$sql = "SELECT `licznik` FROM `tpd_licznik` ORDER BY `data` DESC LIMIT 0,1";

	$licznik = mysql_result(mysql_query($sql), 0, 0);

	return $licznik;

}


function licznik_wczoraj()

{

         $sql = "SELECT `licznik` FROM `tpd_licznik` WHERE CURDATE()-1";

         $licznik = mysql_result(mysql_query($sql), 0, 0);

         return $licznik;

}


function licznik_last()

{

	$sql = mysql_query("SELECT `data` FROM `tpd_licznik` ORDER BY `data` DESC LIMIT 0,1");

	$licznik = mysql_result($sql, 0, 0);

	return $licznik;

}


function licznik_all()

{

	$sql = "SELECT sum(`licznik`) FROM `tpd_licznik`";

	$licznik = mysql_result(mysql_query($sql), 0, 0);

	return $licznik;

}


if(!$_COOKIE['licznik']=="1")

{

	if (licznik_last()==$date)

        {

	$sql = mysql_query("UPDATE `tpd_licznik` SET `licznik`=`licznik`+1 WHERE `data` = '$date';");

        }

	else

        {

        $sql = mysql_query("INSERT INTO `tpd_licznik` (`data`, `licznik`) VALUES ('$date',1)");

        }


setcookie("licznik","1",time()+3600*24);

}

?>

Z góry dziękuję za pomoc


#2
$sql = "SELECT `licznik` FROM `tpd_licznik` WHERE (CURDATE()-1)";

Spróbuj tak


(felixik) #3

niestety nie działa. Inny pomysł?


(Grzelix) #4

Jeśli już to tak:

$sql = "SELECT `licznik` FROM `tpd_licznik` WHERE `data` = '".date("Y-m-d", time() - 60 * 60 * 24)."'"; [/code]

(felixik) #5