Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dinhotaswolf

Problema ao marcar CHECKBOX com dados do banco PHP

Recommended Posts

Olá amigos!

Venho aqui por não estar conseguindo solucionar um problema ao recuperar dados cadastrados no banco de dados e abastecer os CHECKBOX.

O esquema é o seguinte, tenho uma tabela para cadastrar os recursos referentes a imóveis, como os imóveis podem ter vários recursos e os recursos podem existir em vários imóveis criei uma tabela de relacionamento.

O problema está em apresentar todos os dados cadastrados na tabela "recursos", sendo que os recursos que foram cadastrados no “formulário de cadastro” estejam marcados e os outros sem marcação. Esses dados devem ser apresentados no “formulário de atualização”, para caso o usuário deseje modificar os recursos referentes ao mesmo.

Estou conseguindo apresentar todos os dados da tabela recursos. Até consegui marcar a quantidade certa de recursos que foram cadastrados para o imóvel, mas nas opções erradas e não nas realmente cadastradas.

Ex:

Dados da tabela “recursos”:

1-Piscina

2-Varanda

3-Paisagismo

4-Garagem

5-Churrasqueira

6-Jardim de Inverso

7-Lareira

Itens cadastrados no imóvel:

1-Piscina

4-Garagem

6-Jardim de Inverso

Quando vou apresentar no “formulário de atualização” aparece:

1-Piscina - marcado

2-Varanda - marcado

3-Paisagismo - marcado

4-Garagem

5-Churrasqueira

6-Jardim de Inverso

7-Lareira

Onde eu posso estar errando? Tenho quase certeza que é na lógica, mas não tenho ideia de onde eu possa estar errando.

Código que estou utilizando:

<?php
	$recursosimoveis = mysqli_query($conexao, "SELECT rel.idrecursoimovel idrecursoimovel, rec.recursoimovel recursoimovel FROM relimoveisrecursos rel, recursosimoveis rec WHERE rel.idrecursoimovel = rec.idrecursoimovel AND rel.idimovel = '".$fetchImovel->idimovel."' ORDER BY rel.idrecursoimovel ASC");

	$i = 0;
	while ($row = mysqli_fetch_array($recursosimoveis)) { $arrayRecursos[] = $row["idrecursoimovel"]; $i++; }

	$recursos =  mysqli_query($conexao, "SELECT * FROM recursosimoveis");

	$i = 0;
	while ($resrecursosimoveis = mysqli_fetch_array($recursos)) { 
		$pega_array = @$arrayRecursos[$i];
		if (empty($pega_array)) { ?>
			<div style="position:relative; width:33%; float:left;"><label><input type="checkbox" name="recurso[]" value="<?php echo $resrecursosimoveis["idrecursoimovel"]; ?>" /> <?php echo $resrecursosimoveis["recursoimovel"]; ?></label><br /><br /></div>
		<?php } else { ?>
			<div style="position:relative; width:33%; float:left;"><label><input type="checkbox" name="recurso[]" checked="checked" value="<?php echo $resrecursosimoveis["idrecursoimovel"]; ?>" /> <?php echo $resrecursosimoveis["recursoimovel"]; ?></label><br /><br /></div>
		<?php }
		$i++;
	}

	echo '<br><br><br><br><br>'; echo '<pre>'; print_r($arrayRecursos); echo '</pre>'; //exit;
?>

Desde já fico grato pela atenção.

Att,

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por dinhotaswolf
      Olá amigos!

      Venho aqui por não estar conseguindo solucionar um problema ao recuperar dados cadastrados no banco de dados e abastecer os CHECKBOX.

      O esquema é o seguinte, tenho uma tabela para cadastrar os recursos referentes a imóveis, como os imóveis podem ter vários recursos e os recursos podem existir em vários imóveis criei uma tabela de relacionamento.

      O problema está em apresentar todos os dados cadastrados na tabela "recursos", sendo que os recursos que foram cadastrados no “formulário de cadastro” estejam marcados e os outros sem marcação. Esses dados devem ser apresentados no “formulário de atualização”, para caso o usuário deseje modificar os recursos referentes ao mesmo.

      Estou conseguindo apresentar todos os dados da tabela “recursos”. Até consegui marcar a quantidade certa de recursos que foram cadastrados para o imóvel, mas nas opções erradas e não nas realmente cadastradas.

      Ex:

      Dados da tabela “recursos”:

      1-Piscina
      2-Varanda
      3-Paisagismo
      4-Garagem
      5-Churrasqueira
      6-Jardim de Inverso
      7-Lareira

      Itens cadastrados no imóvel:

      1-Piscina
      4-Garagem
      6-Jardim de Inverso

      Quando vou apresentar no “formulário de atualização” aparece:

      1-Piscina - marcado
      2-Varanda - marcado
      3-Paisagismo - marcado
      4-Garagem
      5-Churrasqueira
      6-Jardim de Inverso
      7-Lareira

      Onde eu posso estar errando? Tenho quase certeza que é na lógica, mas não tenho ideia de onde eu possa estar errando.

      Código que estou utilizando:
      <?php $recursosimoveis = mysqli_query($conexao, "SELECT rel.idrecursoimovel idrecursoimovel, rec.recursoimovel recursoimovel FROM relimoveisrecursos rel, recursosimoveis rec WHERE rel.idrecursoimovel = rec.idrecursoimovel AND rel.idimovel = '".$fetchImovel->idimovel."' ORDER BY rel.idrecursoimovel ASC"); $i = 0; while ($row = mysqli_fetch_array($recursosimoveis)) { $arrayRecursos[] = $row["idrecursoimovel"]; $i++; } $recursos = mysqli_query($conexao, "SELECT * FROM recursosimoveis"); $i = 0; while ($resrecursosimoveis = mysqli_fetch_array($recursos)) { $pega_array = @$arrayRecursos[$i]; if (empty($pega_array)) { ?> <div style="position:relative; width:33%; float:left;"><label><input type="checkbox" name="recurso[]" value="<?php echo $resrecursosimoveis["idrecursoimovel"]; ?>" /> <?php echo $resrecursosimoveis["recursoimovel"]; ?></label><br /><br /></div> <?php } else { ?> <div style="position:relative; width:33%; float:left;"><label><input type="checkbox" name="recurso[]" checked="checked" value="<?php echo $resrecursosimoveis["idrecursoimovel"]; ?>" /> <?php echo $resrecursosimoveis["recursoimovel"]; ?></label><br /><br /></div> <?php } $i++; } echo '<br><br><br><br><br>'; echo '<pre>'; print_r($arrayRecursos); echo '</pre>'; //exit; ?> Desde já fico grato pela atenção.

      Att,
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.