2014-10-04 51 views
0

我一直在嘗試在動態頁面上編寫php/mysql點擊計數器,但它似乎不工作。這裏的代碼到目前爲止......PHP/MYSQL在動態頁面上點擊計數器

while{ 
$incre=+1; 
$update=$db->prepare("UPDATE hits=hits+1 WHERE id="$sid""); 
$data=array($incre,$sid); 
$update->execute($data); 

$db->prepare("INSERT INTO thread (hits) VALUES (1) ON DUPLICATE KEY UPDATE hits=hit+1`"); 

if($count==null) 
    {echo "<p style='text-align:center; clear:both; color:black; font-size:95%;'>Total visits: 0</p>";} 
else 
    {echo "<p style='text-align:center; clear:both; color:black; font-size:95%;'>Total visits: <b style='color:red;'>".$count."</b></p>";} 
} 
+0

對不起,但不起作用 – 2014-10-04 01:55:50

+1

什麼是「while」語句?它沒有條件,並沒有結束。 $ sid從哪裏來?你的數據庫連接了嗎?你的表模式是什麼? SQL語句中的任何一個是否正在工作或者它們都失敗? – hukir 2014-10-04 02:07:08

+0

while語句給出了一個錯誤,所以我刪除了它。 – 2014-10-04 02:38:10

回答

0

所以,你的代碼有很多問題。您不要以安全的方式設置sql update語句(sql注入)。然後你不會正確地調用它(你應該始終使用命名參數)。然後你的插入語句永遠不會被調用。你也從來沒有從數據庫中顯示點擊數。很多奇怪的事情正在進行。

$update = $db->prepare("INSERT INTO thread (id, hits) VALUES (:id, 1) ON DUPLICATE KEY UPDATE hits=hits+1"); 
$update->execute(array(':id' => $sid)); 

$query = $db->prepare("SELECT hits FROM thread WHERE id=:id"); 
$query->execute(array(':id' => $sid)); 
$counter = $query->fetchColumn(0); 

echo "<p style='text-align:center; clear:both; color:black; font-size:95%;'>Total visits: <b style='color:red;'>".$counter."</b></p>"; 
相關問題