Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insérez Oui ou Non dans MySQL en fonction de la valeur de la case à cocher

Le problème avec les cases à cocher (comme vous l'avez noté) est que celles qui ne sont pas cochées ne soumettent aucune donnée.

L'astuce standard pour contourner ce problème est...

<input type="hidden" name="field_name" value="0">
<input type="checkbox" name="field_name" value="1">

Lorsque la case est cochée, sa valeur est soumise telle qu'elle apparaît plus loin dans le document. Si elle n'est pas cochée, la valeur d'entrée masquée est soumise.

Vous pouvez alors simplement vérifier la valeur par son nom

$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';

Dans votre cas particulier, incluez le page_id dans le nom de l'entrée, par exemple

<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">

Et en PHP

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

    // update DB
}