I was going through Head First PHP and came by this piece of code.
<?php
$dbc = mysqli_connect('localhost', 'root', 'atlantis2016', 'elvis_store')
or die('Error connecting to MySQL server.');
if(isset($_POST['submit']))
{
foreach ($_POST['todelete'] as $delete_id)
{
$query = "DELETE FROM email_list WHERE id = $delete_id";
mysqli_query($dbc, $query);
}
echo 'Customer removed. <br />';
}
$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_array($result))
{
echo '<input type="checkbox" value="' . $row['id'] . '" name="todelete[]" />';
echo $row['first_name'];
echo ' ' . $row['last_name'];
echo ' ' . $row['email'];
echo '<br />';
}
mysqli_close($dbc);
?>
I fully understand how we go through all the ids present in the array todelete
by using the foreach loop.
What I don't get is how the array itself is created? Are there even arrays in HTML? IF not, how are we creating a PHP array using pure HTML in the following line?
echo '<input type="checkbox" value="' . $row['id'] . '" name="todelete[]" />';
Additionally, what I also find mysterious is how only those id's for which the checkboxes have been ticked end up in the array todelete
while the others are ignored?
Basically, explain the origin and functioning of the todelete
array for me, please.