Problem z polami wyboru (jak zauważyłeś) polega na tym, że te niezaznaczone nie przesyłają żadnych danych.
Standardową sztuczką, aby to obejść, jest...
<input type="hidden" name="field_name" value="0">
<input type="checkbox" name="field_name" value="1">
Gdy pole wyboru jest zaznaczone, jego wartość jest przesyłana tak, jak pojawia się w dalszej części dokumentu. Jeśli nie jest zaznaczone, ukryta wartość wejściowa jest przesyłana.
Następnie możesz po prostu sprawdzić wartość według nazwy
$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';
W konkretnym przypadku dołącz page_id
w nazwie wejściowej, np.
<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">
Oraz w PHP
foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
$dbFlag = $likeFlag ? 'Yes' : 'No';
// update DB
}