Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Insira Sim ou Não no MySQL com base no valor da caixa de seleção


O problema com as caixas de seleção (como você notou) é que as desmarcadas não enviam nenhum dado.

O truque padrão para contornar isso é...
<input type="hidden" name="field_name" value="0">
<input type="checkbox" name="field_name" value="1">

Quando a caixa de seleção está marcada, seu valor é enviado conforme aparece posteriormente no documento. Se desmarcado, o valor de entrada oculto é enviado.

Você pode então simplesmente verificar o valor pelo nome
$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';

No seu caso específico, inclua o page_id no nome de entrada, por exemplo
<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">

E em PHP
foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
    $dbFlag = $likeFlag ? 'Yes' : 'No';

    // update DB
}