Ir para conteúdo

Arquivado

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

rafak1ngz

Criar/alterar Tabela Com Checkbox

Recommended Posts

Bom dia,


Estou com uma dúvida que talvez possa ser simples (antes, gostaria de informar que pesquisei não só no fórum como também em no google e não achei nada igual).


Estou criando um "produto", nele tem várias características em checkbox, exemplo:

PRODUTO: ____________

Caracteristicas: [ ] Item 1 | [ ] Item 2 | [ ] Item 3


E assim por diante (são 30 no total), então criei um banco de dados de características "filho" do banco de dados do produto. Ex.:

IDITEM | IDPRODUTO

1 | 30

2 | 30


E assim por diante... Até ai, para cadastrar eu já sei. Não sei como vou fazer na hora de alterar os dados, como vou fazer? Por exemplo, se eu selecionem 4 itens, vou criar 4 itens no banco de dados, e na hora de alterar, se eu retirar algum item? Como faço para apagar aquela linha no banco de dados do item que tirei? E para criar novo banco caso eu selecione mais uma?


Espero que tenham entendido, foi a melhor forma para explicar...



Abraços e obrigado a todos desde já,

Rafael Dantas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara faz o seguinte, de 1 delete em todos as linhas do produto relacionado e por exemplo:

 

DELETE * FROM produto_caracteristicas WHERE idproduto = "$idproduto";

 

e Logo após isso de insert novamente com os novos dados;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então em um formulário ficaria um update e um delete?

tipo, os dois demais campos (input type=text) tudo com update e na tabela do checkbox uso delete e insert?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o que você falou, realmente ficou melhor...
Só tem uma coisa, não estou conseguindo deixar marcado os checkbox que já selecionei antes...
tentei fazer else e não deu certo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Correto...
Ex.:

Tenho 5 checkbox:
[ ] Item 1 | [ ] Item 2 | [ ] Item 3 | [ ] Item 4 | [ ] Item 5

 

Mando pro bd:

[X] Item 1 | [X] Item 2 | [ ] Item 3 | [X] Item 4 | [ ] Item 5

 

Ele envia pro bd assim?

id | item

1 | item 1

2 | item 2

3 | item 3

 

Na hora que for alterar, no formulário vai aparecer os 5 checkbox, porem não estão selecionados, sendo assim, queria que aparecesse assim no formulario de alterar:

[X] Item 1 | [X] Item 2 | [ ] Item 3 | [X] Item 4 | [ ] Item 5

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos supor que você tenha uma tabela de com as características correto?

 

fazendo a grosso modo, temos:

 

$caracteristicas = SELECT * FROM caracteristicas;

 

Você tem uma tabela de características por produto;

 

$caracteristicas_produto = SELECT * FROM caracteristicas_produto WHERE idproduto = '$id_produto';

 

montamos uma array com os 2 resultados;

 

então podemos fazer assim:

foreach($caracteristicas as $caracteristica){
   echo '<input type="checkbox"  value="'.$caracteristicas['id'] .'" ' . (in_array($caracteristica['id'], $caracteristicas_produto) ? 'checked="checked"' : '') . ' >' . $caracteristica['nome'];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, desculpa não ter respondido antes...

Eu fiz da seguinte forma:

 

<?
echo "<input type='checkbox' name='item[]' value='Item 1'";
$sql = mysql_query("SELECT * FROM produto WHERE (id = '$id') AND (item = 'Item 1')");
$total = mysql_num_rows($sql);
if($total >= 1){
echo "checked"; } else { echo ""; }


echo " /> ";
?>
Dessa forma ele faz uma pesquisa na tabela para saber se tem o id relacionado ao item, se tiver marca checked, se não tiver, o echo retorna vazio.
Deu certo assim...
Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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