Olá pessoal, estou com um problema para recuperar dados do BD Mysql e exibir nos checkbox multiplos. Alguém poderia ajudar?
Tenho um formulario de cadastro extenso onde o usuário seleciona várias opções entre <input type="text"> e <input type="checkbox" >
Meu banco possui várias tabelas e eu as uno com uma chave estrangeira. Uma das tabelas em que gravo os check box possui a seguinte estrutura.
[ code ]
create table infraareacomum(
id int primary key auto_increment,
areacomum varchar (250),
id_anuncio int,
foreign key (id_anuncio) references anuncio(idanuncio) on delete cascade
);
[ /code ]
A parte de cadastro funcionou muito bem. Para cadastrar os multiplos check box estou usando um foreach
Para cadastrar:
[ code ]
...
foreach ($areacomum as $key => &$val) {
$sql3 = "INSERT INTO infraareacomum VALUES (null, '". $val."','".$id_anuncio."')";
if(mysqli_query($con, $sql3)){
var_dump($areacomum);
}
}
...
[ /code ]
Segue um trecho do meu formulario de cadastro onde o usuario seleciona os checkbox. Há mais de 40 itens. Ele possui a seguinte estrutura:
[ code ]
<label>Nas Áreas Comuns:</label><br>
<div class="form-group">
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Bar"> Bar
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Restaurante"> Restaurante
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Churrasqueira"> Churrasqueira
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Piscina"> Piscina
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Vista Panorâmica"> Vista Panorâmica
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Jardim"> Jardim
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Estacionamento"> Estacionamento
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Sala de TV"> Sala de TV
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Salão de Jogos"> Salão de Jogos
</label>
[ /code ]
Agora meu problema é o seguinte:
São multiplos checkbox, preciso que o usuario possa edita-los, para isso deve-se carregar o formulário de edição identico ao de cadastro, porém mostrando os dados que foram cadastrados no banco. Os campos texto funcionara bem, porém o checkbox não vem preenchido. Quando consigo que venha ele só carrega a primeira opção.
Meu codigo:
[ code ]
<?php
$sql = "SELECT areacomum FROM infraareacomum WHERE id_anuncio = '$id' LIMIT 1" ;
$result = mysqli_query($con, $sql);
// $row = mysqli_num_rows($result);
$row = mysqli_fetch_array($result);
//while($row = mysqli_fetch_array($result)){
?>
<div class="form-group">
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Bar" <?php if($row == 'Bar') { echo "checked='checked'"; } ?>> Bar
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Restaurante" <?php if($row == 'Restaurante') { echo "checked='checked'"; } ?>> Restaurante
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Churrasqueira"<?php if($row["areacomum"] == 'Churrasqueira') { echo "checked='checked'"; } ?>> Churrasqueira
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Piscina" <?php if($row["areacomum"] == 'Piscina') { echo "checked='checked'"; } ?>> Piscina
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Vista Panorâmica" <?php if($row["areacomum"] == 'Vista Panorâmica') { echo "checked='checked'"; } ?>> Vista Panorâmica
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Jardim"<?php if($row["areacomum"] == 'Jardim') { echo "checked='checked'"; } ?>> Jardim
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Estacionamento"<?php if($row["areacomum"] == 'Estacionamento') { echo "checked='checked'"; } ?>> Estacionamento
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Sala de TV"<?php if($row["areacomum"] == 'Sala de TV') { echo "checked='checked'"; } ?>> Sala de TV
</label>
<label class="checkbox-inline">
<input type="checkbox" name="areacomum[]" value="Salão de Jogos"<?php if($row["areacomum"] == 'Salão de Jogos') { echo "checked='checked'"; } ?>> Salão de Jogos
</label>
</div>
[ /code ]