sql >> Databasteknik >  >> RDS >> Mysql

Infoga Ja eller Nej i MySQL baserat på kryssrutans värde

Problemet med kryssrutor (som du har noterat) är att de omarkerade inte skickar några data.

Standardtricket för att komma runt detta är...

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

När kryssrutan är markerad skickas dess värde som det visas senare i dokumentet. Om avmarkerat skickas det dolda indatavärdet.

Du kan sedan helt enkelt kontrollera värdet efter namn

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

I ditt specifika fall, inkludera page_id i ingångsnamnet, t.ex.

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

Och i PHP

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

    // update DB
}



  1. Förstå PostgreSQL-frågeprestanda

  2. Hur uppdaterar jag två kolumner i en MySQL-databas?

  3. Hur man inaktiverar en främmande nyckelbegränsning i SQL Server (T-SQL-exempel)

  4. Lägga till bild till en databas i Java