2009-10-18 94 views
0

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

這裏是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]; 
?> 

回答

1

這本來是更好,如果你給表結構,因爲我已經明白這個表結構的方式是你使用網頁字符串作爲id,從插入其明顯查詢select id as page ... where page =...我不知道你的表結構。所以我不能說問題是插入或更新。

如果我的上述假設是正確的,你在更新查詢代替id放置page where子句,變化更新語句 -

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

仍然得到了同樣的問題。 – new 2009-10-18 06:19:41

+0

和數據庫更新不正確。 – new 2009-10-18 06:20:46