Vitor² 0 Denunciar post Postado Outubro 31, 2009 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
Ferreira Felipe 0 Denunciar post Postado Outubro 31, 2009 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
Vitor² 0 Denunciar post Postado Outubro 31, 2009 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
Matias Rezende 50 Denunciar post Postado Outubro 31, 2009 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
Vitor² 0 Denunciar post Postado Outubro 31, 2009 Ai galera vlw pela ajuda, substitui o codigo de acordo com o que o Matias Rezende passo e agora ta funcionando normalmente. Vlw Compartilhar este post Link para o post Compartilhar em outros sites