Ir ao conteúdo
  • Cadastre-se

Erro ao inserir dados de um formulario php


gih_vianna

Posts recomendados

Oiee, estou começando a mexer em php e mysql agora, e não estou conseguindo inserir os dados na tabela!

Estou usando o netBeans conectado com o mysql, ja q eu não tenho muita noção em programar os codigos sql, e eu achei melhor do q mexer no do xampp...

aqui ta o codigo q eu fiz, me ajudem ae por favor!

<?php

if($_POST) {

$conexao = mysql_pconnect("localhost","root","") or die("falha ao conectar");

mysql_select_db("banco") or die('falha ao selecionar banco');

$id = $_POST['id'];

$senha = $_POST['senha'];

$email = $_POST['email'];

$nome = $_POST['nome'];

$deleta_id = $_POST['deleta_id'];

$query_insert = "INSERT INTO tabela (id, senha, email, nome, deleta_id) VALUES ('$id','$senha','$email','$nome', '$deleta_id')";

mysql_query($query_insert) or die ('falha');

} else {

?>

<html>

<head>

<title>Formulário de Cadastro</title>

</head>

<body>

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

<p>ID:<input type="text" name="id"/></p>

<p>Senha:<input type="password" name="senha"/></p>

<p>E-Mail:<input type="text" name="email"/></p>

<p>Nome:<input type="text" name="nome"/></p>

<p>Deleta_ID:<input type="text" name="deleta_id"/></p>

<input type="submit" name="cad" value="Cadastrar" />

</label>

</form>

</body>

</html>

<?php

}

?>

Link para o comentário
Compartilhar em outros sites

  • Moderador

Olá, devo alerta-la de que vejo a falta das boas práticas da programaçao. primeiro de tudo, como você usou as tags code do forum, tens que manter a identaçao assim você verá melhor seu código.

bom, sobre seu problema eu posso te dar algumas dicas.

primeiro de tudo, sempre quando criar sua tabela no banco de dados, defina sua Primary key como auto increment, porque isso? porque toda vez que você fizer um insert, incrementará o numero. então você nao precisa passar o id no seu cadastro.

vamos a programaçao:

sobre seu codigo .. eu posso sugerir algumas mudanças que depois explico melhor:

arquivo conexao.php


<?php
$conexao = mysql_connect("localhost","root","") or die("falha ao conectar");
$banco = mysql_select_db("banco", $conexao) or die('falha ao selecionar banco');
?>

arquivo contendo o formulario:


<html>
<head>
<title>Formulário de Cadastro</title>
</head>
<body>
<form action="[COLOR="Red"][B]cad.php[/B][/COLOR]" method="post">
<p>ID:<input type="text" name="id"/></p>
<p>Senha:<input type="password" name="senha"/></p>
<p>E-Mail:<input type="text" name="email"/></p>
<p>Nome:<input type="text" name="nome"/></p>
<input type="submit" name="cad" value="Cadastrar" />
</form>
</body>
</html>

Arquivo cad.php:


<?php
include 'conexao.php';

$id = $_POST['id'];
$senha = $_POST['senha'];
$email = $_POST['email'];
$nome = $_POST['nome'];
$deleta_id = $_POST['deleta_id'];

$query_insert = "INSERT INTO tabela (id, senha, email, nome, deleta_id) VALUES ('$id','$senha','$email','$nome', '$deleta_id')";
$comando = mysql_query($query_insert);

if ($comando) {

// Recupera o código(autoincremento) inserido na tabela
$codigo = mysql_insert_id($conexao);

echo "<script>
alert('Ok! Cadastrado');
window.location.href='seuFormulario.php';
</script>";
}
else {
mysql_close($conexao);
echo "<script>
alert('Erro... não Cadastradou');
history.go(-1);
</script>";
}

bom.. eu nao entendi uma coisa, aquele ID seria o login da pessoa ou a id da linha do registro? e porque cadastrar um deleta id? para deletar você só precisar dizer qual a linha quer deletar.

bom pelo que eu vi... você estava fazendo tudo no mesmo arquivo... o melhor é dividir como eu fiz. veja que você estava mandando os dados para um cad.php... mas estava recebendo no mesmo arquivo.

foi criado um arquivo separado pra conexao com o banco de dados. é melhor que você trabalhe com arquivos separados. e usar o include ou require para carregar o arquivo.

Link para o comentário
Compartilhar em outros sites

Olá, devo alerta-la de que vejo a falta das boas práticas da programaçao. primeiro de tudo, como você usou as tags code do forum, tens que manter a identaçao assim você verá melhor seu código.

bom, sobre seu problema eu posso te dar algumas dicas.

primeiro de tudo, sempre quando criar sua tabela no banco de dados, defina sua Primary key como auto increment, porque isso? porque toda vez que você fizer um insert, incrementará o numero. então você nao precisa passar o id no seu cadastro.

vamos a programaçao:

sobre seu codigo .. eu posso sugerir algumas mudanças que depois explico melhor:

arquivo conexao.php


<?php
$conexao = mysql_connect("localhost","root","") or die("falha ao conectar");
$banco = mysql_select_db("banco", $conexao) or die('falha ao selecionar banco');
?>

arquivo contendo o formulario:


<html>
<head>
<title>Formulário de Cadastro</title>
</head>
<body>
<form action="[COLOR="Red"][B]cad.php[/B][/COLOR]" method="post">
<p>ID:<input type="text" name="id"/></p>
<p>Senha:<input type="password" name="senha"/></p>
<p>E-Mail:<input type="text" name="email"/></p>
<p>Nome:<input type="text" name="nome"/></p>
<input type="submit" name="cad" value="Cadastrar" />
</form>
</body>
</html>

Arquivo cad.php:


<?php
include 'conexao.php';

$id = $_POST['id'];
$senha = $_POST['senha'];
$email = $_POST['email'];
$nome = $_POST['nome'];
$deleta_id = $_POST['deleta_id'];

$query_insert = "INSERT INTO tabela (id, senha, email, nome, deleta_id) VALUES ('$id','$senha','$email','$nome', '$deleta_id')";
$comando = mysql_query($query_insert);

if ($comando) {

// Recupera o código(autoincremento) inserido na tabela
$codigo = mysql_insert_id($conexao);

echo "<script>
alert('Ok! Cadastrado');
window.location.href='seuFormulario.php';
</script>";
}
else {
mysql_close($conexao);
echo "<script>
alert('Erro... não Cadastradou');
history.go(-1);
</script>";
}

bom.. eu nao entendi uma coisa, aquele ID seria o login da pessoa ou a id da linha do registro? e porque cadastrar um deleta id? para deletar você só precisar dizer qual a linha quer deletar.

bom pelo que eu vi... você estava fazendo tudo no mesmo arquivo... o melhor é dividir como eu fiz. veja que você estava mandando os dados para um cad.php... mas estava recebendo no mesmo arquivo.

foi criado um arquivo separado pra conexao com o banco de dados. é melhor que você trabalhe com arquivos separados. e usar o include ou require para carregar o arquivo.

então, fiz o jeito q você colocou ai, eu sabia q tinha q separar, coloquei junto pra ser ''rápido de por aqui ''... esses campos estão meio estranhos, porq eu tirei o exemplo da parte de registro de um site para servidor de jogo, e a pessoa q ta montando o server me falou q tinha q ter esses exatos campos...

O ID ai é de login mesmo, na tabela eu criei uma variavel int como chave primaria, chamado '' chave'', só q no netbeans, eu coloquei ele bonitinho auto incremento e quando fui ver lá na parte do xamp, nao estava :0, ai funcionou o seu codigo...

desconhecia tb esse comando

$codigo = mysql_insert_id($conexao);

mas muito obrigada, o jeito q você colocou aqui me ajudou muito!!

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!