In the "edit view" of my form I have a list of checkboxes and I want to check the ones which are in the table book_have_languages
(notice that one book can have more than one language).
Code:
<?php $query_c = mysqli_query($mysqli, "SELECT id_language, name_language FROM languages ORDER BY name_language;")
or die('error '.mysqli_error($mysqli));
while ($data_c = mysqli_fetch_assoc($query_c)) {
echo "<div class='checkbox'><label><input type='checkbox' name='languages[]' value='$data_c[id_languages]'>$data_c[name_language]</label></div>";
$sql = "SELECT id_book, id_language FROM book_have_languages WHERE id_book=3";
$res = $mysqli->query($sql) or die("error: ".$sql);
$results = array();
while($row = mysqli_fetch_assoc($res)) {
$results[] = $row;
}
foreach ($results as $result){
if($result['id_language'] == $data_c['id_language']){
echo"<div class='checkbox'><label><input type='checkbox' name='languages[]' value='$data_c[id_language]'checked >$data_c[name_language]</label></div>";
}
}
}
?>
Result:
If my table is:
id_book | id_language
3 - 2
3 - 5
3 - 6
Languages 2, 5, 6 are checked but they appear duplicated. How can I indicate in the first echo only show the languages that there aren't in the table?