too long

i have a curious problem. When i make an update to a row, the info is updated, but not how i expect it to. i call this code

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

I have also tried this code as well...

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();
}

It does work, But the number is increased by 2, not the 1 i expected.This line HAS worked in other applications i have used... but now it is behaving oddly. Any help will be appreciated.
Here is the full PHP block

$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');
}

You probably have some error in your application logic such that $v_count in your PHP code doesn't equal the v_count field in your MySQL table.

If you use

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

it will always increase by 1 no matter what the value of your $v_count PHP variable.