[英]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.