Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

 Брояч
Автор  iwanov (22.10.2007 10:47) съобщение до автора
Погледнат  1245 пъти добави към любими
Оценка добави коментар
Гласове  -- изпрати на приятел
Коментари  (0) абонирай се за PHP
     
iwanov
     
 

Брояча работи с MySQL база данни. Ето я и нея.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE counthits (
 
id int(11) NOT NULL auto_increment,
 
time int(14) default '0',
 
userstoday int(10) default '0',
 
start varchar(5) default 'no',
 
KEY id (id)
)
TYPE=MyISAM;

CREATE TABLE countip (
 
ip varchar(255) default '',
 
time int(14) default '0'
) TYPE=MyISAM;

connect.php
CODE
1
2
3
4
5
6
7
8
<?
$database="DB";
$sqlhost="localhost";
$sqluser="user";
$sqlpass="password";
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE("1");
mysql_select_db($database) OR DIE("1");
?>

counter.php
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?
include("connect.php");
// timer is the amount of time that must have passed before another count is registered - seconds
$timer = "300";
$time = time();
$date = date("dmY",$time);
$day = date("d",$time);
$ip = $REMOTE_ADDR;
$result = mysql_query("SELECT * FROM counthits ORDER BY time DESC LIMIT 0,1");
$row = mysql_fetch_array($result);
$olddate = date("dmY",$row[time]);
$oldday = date("d",$row[time]);
// start a new day
if($olddate != $date) {
 
mysql_query("insert into counthits (time,userstoday) values ('$time', '1')");
}
// Delete recorded users from yesterday (ips)
mysql_query("delete FROM countip WHERE FROM_UNIXTIME(time, '%d%m%Y') != '$date'");
$result = mysql_query("SELECT * FROM counthits ORDER BY time DESC LIMIT 0,1");
$hits = mysql_fetch_array($result);
$id = $hits[id];
$result1 = mysql_query("SELECT * FROM countip WHERE ip = '$ip'");
$row = mysql_fetch_array($result1);
$olddate = $row[time];
$oldtime = $row[time];
if($row[ip] == "") {
// if the user has not been here today - count
         
mysql_query("insert into countip (ip, time) values ('$ip', '$time')");
         
$userstoday = $hits[userstoday]+1;
         
mysql_query("update counthits set userstoday='$userstoday' WHERE id like '$id'");
} else {
// if the user has been here today - check if the time specified has passed - count
   
$dif = $time-$oldtime;
   
if($dif > $timer) {
       
$userstoday = $hits[userstoday]+1;
       
mysql_query("update counthits set userstoday='$userstoday' WHERE id like '$id'");
       
mysql_query("update countip set time = '$time' WHERE ip like '$ip'");
   
} else {
       
// update the time so that the user must leave for $timer seconds before a count is registered again
        // leave out this line to count after $timer seconds - without updating the time if the user comes back
        // within $timer seconds
        // mysql_query("update countip set time = '$time' WHERE ip like '$ip'");
   
}
}
$result = mysql_query("SELECT * FROM counthits WHERE FROM_UNIXTIME(time, '%d%m%Y') like '$date'");
$hits = mysql_fetch_array($result);
// echo out these variables to show them
$userstoday = $hits[userstoday];
$result1 = mysql_query("SELECT SUM(userstoday) as sum FROM counthits");
$total = mysql_fetch_array($result1);
$userstotal = $total[sum];
//mysql_close();
?>

stats.php
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<table border="1" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td>Today </td>
    <td align="right">
<?
include("connect.php");
include("counter.php");
$userstoday = number_format($userstoday, 0, '', '.');
echo($userstoday);
?>
    </td>
  </tr>
  <tr>
    <td>Total </td>
    <td align="right">
<?
$userstotal = number_format($userstotal, 0, '', '.');
echo($userstotal);
?>
    </td>
  </tr>
</table>
<?
mysql_close();
?>

counter_admin.php
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<link rel="stylesheet" href="stylesheet.css" type="text/css">
<?
include ("connect.php");
$spacer = "<hr size='1'>";
$time = time();
$today = date("d. F Y",$time);
$date = date("mY",$time);
$date_today = date("dmY",$time);
echo "<span class='headline'>Hits month:</span>";
echo "$spacer";
$result = mysql_query("SELECT * FROM counthits GROUP BY FROM_UNIXTIME(time, '%m%Y')");
while ($row = mysql_fetch_array($result)){
   
$month_spec = date("mY",$row[time]);
   
$month = date("F, Y",$row[time]);
   
$result1 = mysql_query("SELECT SUM(userstoday) as sum FROM counthits WHERE FROM_UNIXTIME(time, '%m%Y') like '$month_spec'  AND start like 'no'");
   
$row1 = mysql_fetch_array($result1);
   
echo "<span class='time'>$month</span> - $row1[sum]";
   
echo "<br>";
}
echo "$spacer";
if (!$limit){
   
$limit = "10";
}
echo "<span class='headline'>Hits a day last $limit days:</span>";
echo "$spacer";
$result = mysql_query("SELECT * FROM counthits WHERE start like 'no' ORDER BY time DESC LIMIT 0,$limit");
while ($row = mysql_fetch_array($result)){
   
$time2 = date("d. F Y",$row[time]);
   
echo "<span class='time'>$time2</span> - $row[userstoday]";
   
echo "<br>";
}
echo "$spacer";
echo "<span class='headline'>Days with most hits top $limit:</span>";
echo "$spacer";
$result = mysql_query("SELECT * FROM counthits WHERE start like 'no' ORDER BY userstoday DESC LIMIT 0,$limit");
$i = "1";
while ($row = mysql_fetch_array($result)){
   
$time = date("d. F Y",$row[time]);
   
echo "$i | <span class='time'>$time</span> - $row[userstoday]";
   
echo "<br>";
   
$i++;
}
echo "$spacer";
echo "<span class='headline'>Average without todays hits:</span>";
echo "$spacer";
$result = mysql_query("SELECT * FROM counthits WHERE start like 'no' AND FROM_UNIXTIME(time, '%d%m%Y') not like '$date_today'");
$amount = mysql_num_rows($result);
$result = mysql_query("SELECT SUM(userstoday) as sum FROM counthits WHERE start like 'no' AND FROM_UNIXTIME(time, '%d%m%Y') not like '$date_today'");
$row = mysql_fetch_array($result);
$hits = ceil("$row [sum] / $amount");
echo "$hits pr dag";
echo "$spacer";
echo "<span class='headline'>Today $today:</span>";
echo "$spacer";
$result = mysql_query("SELECT * FROM counthits WHERE FROM_UNIXTIME(time, '%d%m%Y') like '$date_today'");
$hits = mysql_fetch_array($result);
echo $hits[userstoday];
echo "$spacer";
echo "<span class='headline'>Choose amount of days:</span>";
echo "$spacer";
echo "<a href='?limit=10'>10 days</a>";
echo " | ";
echo "<a href='?limit=20'>20 days</a>";
echo " | ";
echo "<a href='?limit=30'>30 days</a>";
mysql_close();
?>




Ключови думи: PHP брояч MySQL query заявка запитване




 За автора: iwanov  
Казвам се Галин Иванов и обичам да се занимавам с програмиране и като цяло с компютри. Разбирам от HTML, CSS, PHP и MySQL. Старая се да научавам постоянно нови неща от IT сферата.
   
 1 посетител чете този скрипт (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 
  • Интересно от myLINKS
 
 
 
 



IT-PLACE.NET © 2004 - 2008