Quantcast
Viewing all articles
Browse latest Browse all 517111

Счетчик посещений php+mysql - PHP для начинающих

Суть задания-написать счетчик, записывающий в таблицу бд: ip, количество посещений с этого ip за все время и дату последнего посещения.

есть таблица

Код:

CREATE TABLE `ip_count`
(
'IP' varchar(500),
`Visits` int(255),
`Last` date,
);

попытался написать сам
цикл бегает, но возникает проблема, что for'ы работают при каждой строчке таблицы, а следовательно при проверке первой строчки и не совпадении с ip пользователя он вбивает новую строчку, не думая, что дальше в таблице может существовать нужная строчка...
Код:

<?php
echo 'IP<br>';
$h_name="localhost";//имя хоста
$b_name="counter";//имя табл
$u_name="root";//имя юзера
$today = date("Y-m-d");
$link=mysql_connect($h_name, $u_name, '');//подкл к мускл
$db=mysql_select_db($b_name, $link);//подкл к бд

$ip = $_SERVER["REMOTE_ADDR"];//получаем ип
$result=mysql_query("SELECT * FROM ip_count");//вытащили объект-таблицу


do
        {        $ar=mysql_fetch_array($result);
                if($ar[0]==$ip && $ar[2]==$today)
                        {
                                $vis=$ar[1];
                                $vis++;
                                mysql_query("UPDATE `ip_count` SET `Visits`=$vis WHERE `IP`='$ip',`Last`=CURRENT_DATE()");//visits++
                        };
                if($ar[0]==$ip && $ar[2]!=$today)
                        {
                                $vis=$ar[1];
                                $vis++;
                                mysql_query("UPDATE `ip_count` SET `Visits`=$vis,`Last`=CURRENT_DATE() WHERE `IP`=$ip");//visits++ last=today       
                        };
                if($ar[0]!=$ip)
                        {
                                mysql_query("INSERT INTO `ip_count` VALUES ('$ip',1,CURRENT_DATE())");//insert       
                        };
                       
        } while ($ar!=False);
?>

как систематизировать/исправить/переделать цикл?
или есть какой другой вариант?

Viewing all articles
Browse latest Browse all 517111

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>