• Home
  • PHP
  • Keep checkboxes checked with MySQL and PHP

Keep checkboxes checked with MySQL and PHP

Most of the time we have a website or a back-end solution, written in PHP, where we use check-boxes as “flags” (to activate a user or a product for example – 1=active, 0=inactive).

Below is the example that I will base on our fictional “products” page in the back-end solution, where we specify if a given product is active or inactive (in order to show or hide it on the front of the site).
First we created a field in our products table in the database. It is a TINYINT field with a length/value of 1. We will call this field “active”.

On our PHP page for a product we usually have a table, which holds a form, which we then submit and the values are updated in the database for that specific productID. So we will add a new row to our HTML, containing a check-box for “active”:

    <td>Active: </td>
    <td><input type="checkbox" name="active" id="active" value="1" <?=($active==1)?" checked ":""?>></td>

This check-box will become checked if the value in the database equals to 1.

At the very top of the page (before you save your data) you add:

$active = (!empty($_REQUEST["active"]))?trim(str_replace("'","`",$_REQUEST["active"])):0;

We need this line to process a saved value for “active” after we submit a form. We will use this value (either 1, if checked or 0, if not checked) to update our database table later on, like so:

$sSQL = "UPDATE productsTable SET active = '".$active."' WHERE productsID = '".$productsID."'";
mysql_query($sSQL) or die("Invalid query: ".mysql_error()." - $sSQL");

All done.

Tags: , , ,