Проблемът с квадратчетата за отметка (както отбелязахте) е, че тези без отметка не изпращат никакви данни.
Стандартният трик за заобикаляне на това е...
<input type="hidden" name="field_name" value="0">
<input type="checkbox" name="field_name" value="1">
Когато е поставена отметка в квадратчето, стойността му се изпраща така, както се показва по-късно в документа. Ако не е отметнато, скритата входна стойност се изпраща.
След това можете просто да проверите стойността по име
$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';
Във вашия конкретен случай включете page_id
във входното име, напр.
<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">
И в PHP
foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
$dbFlag = $likeFlag ? 'Yes' : 'No';
// update DB
}