[PHP - MySQL] Unik räknare utan cookies.

Permalänk
Medlem

[PHP - MySQL] Unik räknare utan cookies.

Vill ha en unik räknare, men vill inte använda cookies. Jag har satt upp en MySQL databas med en tabell som heter statistik, 2 celler en som heter datum jag kör en som DATETIME och en cell som heter ip, med användarens ip.

Jag skriver till de olika cellerna såhär:
datum: NOW();
ip: $_SERVER['HTTP_REFFERER'];

Vad jag nu undrar är hur jag får detta till en unik räknare. Jag tänkte som så att jag ska ta bort de ipnummer som är dubletter, om det är samma dag som de är inskrivna.

Vad jag kan komma på så har jag 2 frågor:

1. Hur räknar man dessa IP nummer, som inte får lov att vara dubletter samma dag. Vad jag har förstått ska jag använda DISTINCT funktionen i mysql, men jag vet inte hur. Har läst på mysql.com. Om DISTINCT, men blir inte klokare på det.

2. Kan man göra en räknare med unika besökare på något annat sätt UTAN att använda cookies?

Permalänk
Medlem

Är det inte lite smartare att endast lägga in varje IP en gång per dag?

Permalänk
Medlem

Kanske det kanske, men hur? Kolla om IPt redan finns i databasen just det året, måndaden, dagen. Om det finns ska den inte skriva?

Permalänk
Inaktiv

Sätt ip och datum som unika så kommer inte mysql att vilja lägga in dem om de redan finns.

Permalänk
Medlem

Men jag använder funktionen NOW() den skriver yyyy-mm-dd hh:mm:ss

Men du vill att jag ska använda date istället, så jag kan skriva som jag själv vill, och då skriva t.ex. yyyy-mm-dd ?

Jag har ändrat mig nu, tror detta blir ett enklare sätt att bygga upp det på. Jag har istället för en cell för DATETIME så har jag 3 st. year, month och day. Nu letar jag efter en funktion för att kolla om det finns någon ip för just dagens datum. Men jag vet inte hur jag ska göra det. Vad sägs om detta?

<?

$yyyy = date("Y");
$mm = date("m");
$dd = date("d");
$hh = date("H");
$ip = $_SERVER['REMOTE_ADDR'];
$rf = $_SERVER['HTTP_REFFERER'];

$query = "SELECT ip FROM statistik WHERE year='$yyyy' AND month='$mm' AND day='$dd'";
$result = MySQL_query($query);
$wee = mysql_result($result, 0);

if(empty($wee)) {

$insert = "INSERT INTO statistik (year,month,day,hour,ip,refferal)
VALUES ('$yyyy','$mm','$dd','$hh','$ip','$rf')";
mysql_query($insert) or die ("Could not add data to the table");
}

?>