簡體   English   中英

PHP和MySQL計數器多頁計數問題?

[英]PHP and MySQL hit counter multiple pages count problem?

以下腳本將更新數據庫,但不會在每個不同的頁面上顯示正確的頁面數。 由於某種原因,它將大部分時間凍結頁面上的頁數。

這是PHP代碼:

<?php
$page = $_SERVER['SCRIPT_FILENAME']; 

// Query member data from the database and ready it for display
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT id page FROM mysql_counter_logs WHERE page = '$page'");

if (mysqli_num_rows($dbc) == 0) {
    $mysqli = new mysqli("localhost", "root", "", "sitename");
    $clean_page = mysqli_real_escape_string($mysqli, $page);
    $dbc = mysqli_query($mysqli,"INSERT INTO mysql_counter_logs (page) VALUES ('$clean_page')");
} 

if ($dbc == 1) {
    $dbc = mysqli_query($mysqli,"UPDATE mysql_counter_logs SET hits = hits + 1 WHERE page = '$page'");
}

//Retrieves the current count
$count = mysqli_fetch_row(mysqli_query($mysqli,"SELECT hits FROM mysql_counter_logs"));

if (!$dbc) {
    // There was an error...do something about it here...
    print mysqli_error();
} 

//Displays the count on your site
echo $count[0];
?>

如果您提供表結構,那會更好,因為據我所知,這種表結構是您將頁面字符串用作id ,從您的插入查詢中可以明顯看出, select id as page ... where page =... I not了解您的表結構。 所以我不能說問題在於插入或更新。

如果我的上述假設是正確的,則將page放置在更新查詢的where子句中的id處,請將update語句更改為-

$dbc = mysqli_query($mysqli,"UPDATE mysql_counter_logs SET hits = hits + 1 WHERE id= '$page'");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM