douhuike3199 2014-12-04 04:03
浏览 148

PHP - MySQLi UPDATE +1确实增加了2

I'm trying to count page views on page load, although anytime I load the page 'UPDATE SET views = views + 1' is actually adding 2. I've got my code below, if any one has any suggestions that'd be awesome.

// Create database connection
$db = new mysqli($db[host], $db[user], $db[pass], $db[data]);

// Display database connection error (if applicable)
if (mysqli_connect_errno()){
    printf("Connect failed: %s
", mysqli_connect_errno());
    exit();
}

// Define Visitor Variables
$visitor[ip] = $_SERVER['REMOTE_ADDR']?:($_SERVER['HTTP_X_FORWARDED_FOR']?:$_SERVER['HTTP_CLIENT_IP']);

// Checks database to see if ip exists in logs
$check[ip] = $db->query("SELECT ip FROM admin_views WHERE ip = '$visitor[ip]'");

// If ip is found in database, update page views counter if it's not found, create a record for it
if ($check[ip]->num_rows == 1){
    $db->query("UPDATE admin_views SET views = views +1 WHERE ip = '$visitor[ip]'");
} else {
    $db->query("INSERT INTO admin_views VALUES('NULL', '$visitor[ip]')");
    echo "not found";
}

// Count the number of views
$count_views = "SELECT SUM(views) AS countViews FROM admin_views";

if ($result = $db->query($count_views)) {

    while ($row = $result->fetch_assoc()) {
       $views = $row['countViews'];
    }

    $result->free();
}

// Count unique page views
$count_unique_views = "SELECT id FROM admin_views ORDER BY id DESC LIMIT 1";

if ($result = $db->query($count_unique_views)) {

    while ($row = $result->fetch_assoc()) {
       $unique_views = $row['id'];
    }

    $result->free();
}

// Close database connection
$db->close();
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 BP神经网络控制倒立摆
    • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
    • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
    • ¥30 Unity接入微信SDK 无法开启摄像头
    • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
    • ¥20 cad图纸,chx-3六轴码垛机器人
    • ¥15 移动摄像头专网需要解vlan
    • ¥20 access多表提取相同字段数据并合并
    • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
    • ¥20 Java-Oj-桌布的计算