Ir para conteúdo

POWERED BY:

Arquivado

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

Vitor²

[Resolvido] Adicionar dados a tabela

Recommended Posts

Ola amigos

 

Sou iniciante em php e estou com alguns problemas.

Criei um formulário para cadastrar alguns produtos em uma tabela do mysql, mas os dados somente são aceitos quando são apenas números, e no campo "preço" quando se coloca um numero quebrado (1,99) ele tambem nao aceita e da erro (Houve erro na gravação dos dados.).

 

Segue o codigo das paginas e da tabela do db.

 

form.php

<?php
session_start();
include("conexao.php");
?><h1>Sistema de Cadastro de Produtos</h1>

<form action="inserir.php" method="post">

   <label for="nome">Nome: </label>
   <input name="nome" type="text" id="nome" size="40" maxlength="50" />

   <label for="codigo">Codigo: <br>
   Codigo:</label>
   <input name="codigo" type="text" id="codigo" size="15" maxlength="15" />
   <br />

   <label for="preco">Preço: </label>
   <input name="preco" type="text" id="preco" size="7" maxlength="7" />
  <br>
   <br />

     <input type="submit" value="Adicionar Produto">

</form>

inserir.php

<?php
session_start();
include("conexao.php");
?>
<?php

$sql = "INSERT INTO produtos (nome,codigo,preco) VALUES (".$_POST["nome"].",".$_POST["codigo"].", ".$_POST["preco"].")";

$sql = mysql_query($sql)
or die ("Houve erro na gravação dos dados.");
?>

<h1>Cadastro efetuado com sucesso!</h1>

tabela.sql

CREATE TABLE produtos (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
codigo VARCHAR(130) NOT NULL,
nome VARCHAR(130) NOT NULL,
preco FLOAT NOT NULL
);

Espero que alguem possa me ajudar, Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Espero que alguem possa me ajudar, Obrigado

 

Mode o trecho abaixo:

$sql = mysql_query($sql)
or die ("Houve erro na gravação dos dados.");

Para:

$sql = mysql_query($sql)
or die (mysql_error());

E informe o erro que aparece!!!

Isso ajuda bastante achar a onde estamos errando!! Depois você pode voltar com a mensagem que você colocou!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudei o trecho e aconteceu o seguinte:

 

Se eu colocar um texto simples no campo "nome" (Celular) e preencher codigo e preço com valores inteiros, da o seguinte erro:

"Coluna 'Celular' desconhecida em 'field list'"

 

Se colocar um texto com "espaço" (Celular Nokia) no campo "nome" e preencher codigo e preço com valores inteiros, da o erro:

"Você tem um erro de sintaxe no seu SQL proximo a 'Nokia,876543, 321)' na linha 1"

 

E se preencher todos os campo, e no campo "Preço" colocar um numero quebrado (199,90) da o erro:

"Contagem de colunas não confere com a contagem de valores na linha 1"

 

Aguardo resposta e vlw pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu insert, os valores que não forem inteiros, separe por aspas. Assim.

 

$sql = "INSERT INTO produtos (nome,codigo,preco) VALUES ('".$_POST['nome']."','".$_POST['codigo']."', '".$_POST['preco']."')";

Outra coisa, o formato correto para campo float (1,99) é 1.99.

 

Carlos Eduardo

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.