« Return

Join array. Handling HTML checkboxes form elements

Handling checkbox / converting array to string to post to mysql. ( demo )

file 1 ( index.php )
<?php
$mysqli = new mysqli('localhost', 'username', 'password', 'database_name');

if ($mysqli->connect_errno):
    die('Connect Error: ' . $mysqli->connect_errno);
endif;

$mysqli->set_charset('utf8');

# make it safe ( oo style )
# -------------------------------------------------------------------------------------
function safe($input) {
 global $mysqli;
 if (ini_get('magic_quotes_gpc')): $input = stripslashes($input); endif;
 return $mysqli->real_escape_string($input);
}

# if submit true
# -------------------------------------------------------------------------------------
if (array_key_exists('submit', $_POST)):

    $name = safe($_POST['name']);

    if ($_POST['beer']) {
    $beer = safe(implode(', ', $_POST['beer']));
    }

    if ($_POST['wine']) {
    $wine = safe(implode(', ', $_POST['wine']));
    }
    
    $sql = "INSERT INTO table_name VALUES ('$name','$beer','$wine')";
    $result = $mysqli->query($sql);
    
    print_r($_POST);
endif;
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Name: <input type="text" name="name" /><br />
    Beer: <br />
    <select multiple name="beer[]">
        <option value="Corona">Corona</option>
        <option value="Guinness">Guinness</option>
        <option value="Heineken">Heineken</option>
    </select>
    
    Wine: <br />
    <input type="checkbox" name="wine[]" value="Merlot">Merlot
    <input type="checkbox" name="wine[]" value="Chianti">Chianti
    <input type="checkbox" name="wine[]" value="Shiraz">Shiraz
    
    <input type="submit" value="submit" name="submit" />
</form>