2016-03-01 38 views
0

我有一個好奇的問題。當我對一行進行更新時,信息會更新,但不是我期望的更新。我把這個代碼mysqli的行更新時由1更新被稱爲

$count = $v_count+1; 
mysqli_query($db_conn, "UPDATE videos SET v_count='$count' WHERE id='$vk'"); 

我自己也嘗試這個代碼,以及...

if(isset($_POST['vk'])){ 
mysqli_query($db_conn, "UPDATE videos SET v_count='$v_count'+1 WHERE id='$vk'"); 

}else{ 
echo mysqli_error($db_conn);exit(); 
} 

它的工作,但數量增加2,而不是1我expected.This線有在我用過的其他應用程序中工作......但現在它表現得很奇怪。任何幫助將不勝感激。
下面是完整的PHP塊

$vk = $_GET['vk']; 
if($vk != ''){ 
$sql = "SELECT * FROM videos WHERE id='$vk' LIMIT 1"; 
$query = mysqli_query($db_conn, $sql) or die (mysqli_error()); 
while ($row = mysqli_fetch_array($query)) { 
$v_count   = $row['v_count']; 
} 
mysqli_query($db_conn, "UPDATE videos SET v_count=v_count+1 WHERE id='$vk'"); 
mysqli_free_result($query); 
}else{ 
    header('location: index.php'); 
} 
+0

1將遞增'v_count'的想法或'v_count'從什麼是數據庫中的一個完全不同的數字? – jsfan

+0

'$ v_count'從哪裏來?或者嘗試(因爲我不知道你的代碼的其餘部分)第二個版本適用於:'SET v_count = v_count + 1' - 如果這是你想達到的目標!? – Jeff

+0

'$ v_count'正在此代碼上方的while循環中定義。就像我說的,它是工作,但增加了2計數,而不是預期的1 @jsfan,v_count是在數據庫中,和每一個視頻被調用的時候,我想這隻能由1增加目前,它正在增加通過2 –

回答

0

你可能有一些錯誤在你的應用程序邏輯,使得$v_count在PHP代碼不等於v_count場在你的MySQL表。

如果使用

mysqli_query($db_conn, "UPDATE videos SET v_count=v_count+1 WHERE id='$vk'"); 

它總是會增加1不管你是什麼$ v_count PHP變量的值。

+0

我插入那一行。它確實增加了計數,但是通過2而不是1. –

+0

我已經在我的問題中包含了完整的代碼塊。這是一個令我感到困惑.... –

+0

不,這條線增加1計數如果計數被增加2那是因爲你還提高代碼中它由1別的地方增加2個。只是要確定......你是否實際上「插入」了該行?因爲,你知道,它應該取代你的東西。 – OscarJ