Ir para conteúdo
Fórum Script Brasil
  • 0

Inserir multiplos checkbox com MySQLi


koodez

Pergunta

Preciso inserir informações em uma tabela onde as opções são:

`amarelo` varchar(255) NOT NULL,
`laranja` varchar(255) NOT NULL,
`azul` varchar(255) NOT NULL,
`verde` varchar(255) NOT NULL,
O que devo alterar no código abaixo para fazer a inserção das opções?
$stmt = $mysqli->prepare("
INSERT INTO
cores (
amarelo,
laranja,
azul,
verde
) VALUES (
?,
?,
?,
?
)");
$stmt->bind_param('ssss',
$amarelo,
$laranja,
$azul,
$verde
);
O HTML está como segue abaixo:
<input type="checkbox" name="tipo[]" value="amarelo"></span>
<input type="checkbox" name="tipo[]" value="laranja"></span>
<input type="checkbox" name="tipo[]" value="azul"></span>
<input type="checkbox" name="tipo[]" value="verde"></span>
Este é apenas um exemplo, o arquivo original tem 20 itens.

Se alguém puder me dar uma ajuda, agradeço muito!

Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Cada input tem que ter o name igual ao do value, assim quando for fazer o INSERT você só tem que pegar os valores na variável $_POST e inserir, os valores retornados por cada input será o próprio value ou FALSE se ele não tiver sido selecionado.

Porém cara o que é ideal para uma situação dessas é seguir as regrinhas de como se estruturar um banco de dados, isso facilita e muito na manutenção de um sistema, porque sistemas crescem, daqui a pouco centenas de pessoas querem usar e você terá que dar prioridades diferentes à cada tipo de usuário ou os produtos deverão ter mais campos à serem preenchidos. Enfim não seguir a normalização te dará dores de cabeça futuros.

Se precisar de ajuda posta que a gente te da uma mão.

Abraços.

Tudo de bom.

Link para o comentário
Compartilhar em outros sites

  • 0

Agradeço pela dica Markus, infelizmente preciso resolver esse problema com a inserção das opções do checkbox. Se tiver alguma idéia mais prática para a solução do meu problema, agradeço. No entanto, já estou lendo o material que você sugeriu.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

O primeiro parágrafo é a solução simples.

Cada input tem que ter o name igual ao do value, assim quando for fazer o INSERT você só tem que pegar os valores na variável $_POST e inserir, os valores retornados por cada input será o próprio value(amarelo,laranja,azul,verde) ou FALSE se ele não tiver sido selecionado.
<?php
$stmt = $mysqli->prepare("
INSERT INTO
cores (
amarelo,
laranja,
azul,
verde
) VALUES (
?,
?,
?,
?
)");
$stmt->bind_param('ssss',
$_GET['amarelo'],
$_GET['laranja'],
$_GET['azul'],
$_GET['verde']
);

Abraços.

Tudo de bom.

Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

O primeiro parágrafo é a solução simples.

Cada input tem que ter o name igual ao do value, assim quando for fazer o INSERT você só tem que pegar os valores na variável $_POST e inserir, os valores retornados por cada input será o próprio value(amarelo,laranja,azul,verde) ou FALSE se ele não tiver sido selecionado.
<?php
$stmt = $mysqli->prepare("
INSERT INTO
cores (
amarelo,
laranja,
azul,
verde
) VALUES (
?,
?,
?,
?
)");
$stmt->bind_param('ssss',
$_GET['amarelo'],
$_GET['laranja'],
$_GET['azul'],
$_GET['verde']
);

Abraços.

Tudo de bom.

Muito obrigado pela ajuda, aqui funcionou sem maiores problemas.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...