Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Problemas com Checkbox

Seguinte, a principio está tudo corrento no código, quando é enviado a query para o banco esta enviando o valor booleano que eu enviei, entretanto a informação nao chega no banco, fica sempre true

*adiciona-produto(quando envia pro banco):
if(array_key_exists('usado', $_POST)){
        $usado = "true";
      }else{
        $usado = "false";
      }

if($nome != null && $preco !=null){
        if (insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado)) { ?>

        <p class='text-success'> Produto <?php echo $nome;?> , R$<?php echo $preco; ?> adicionado com sucesso!</p><?php
        }

      }else{ ?>
        <p class='text-danger'> Produto <?php echo $nome;?> não foi cadastrado!</p><?php
        //echo mysqli_error($conexao); //-->nao encontra funçao
      }
*banco-produto(funções):
function insereProduto ($conexao, $nome, $preco, $descricao, $categoria_id, $usado){
    $query = "INSERT INTO produtos (nome, preco, descricao, categoria_id, usado) VALUES "."('{$nome}', '{$preco}', '{$descricao}',
                                                                                        '{$categoria_id}', '{$usado}')";
    $resultadoParaBanco = mysqli_query($conexao, $query);
    echo $query;
    return $resultadoParaBanco;
  }
*banco:

CREATE DATABASE loja;
USE loja;

CREATE TABLE produtos(
    id INTEGER AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR (255),
    preco DECIMAL (10,2),
    descricao TEXT,
    categoria_id INTEGER,
    usado BOOLEAN
);

INSERT INTO produtos (nome, preco, descricao, categoria_id, usado) values ('VW-GOL', 20000.00, 'Muito Bonito', 2, 1),
                                                                          ('VW-FOX', 25000.00, 'Legal', 2, 0),
                                                                          ('GM-CELTA', 15000.00, '', 2, 1)
;

CREATE TABLE categorias (
    id INTEGER AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(255)
);

INSERT INTO categorias (nome) VALUES ('doces'), 
                                     ('carros'),
                                     ('material escolar'),
                                     ('outros')
;

select * from produtos;
5 respostas
solução!

Na function insereProduto, tente tirar as aspas simples ao redor de {$usado}. Já fiz esse curso e fiz isso. E pode tirar as aspas simples ao redor de {$categoria_id} e {$preco} também.

Exato! As aspas simples em querys são utilizadas para strings, apenas complementando a informação.

valeu. Meu Heroi kkk Obrigado mesmo. Abç

Que isso... Disponha. Abraço

De nada Luis! Bons estudos, abraço!