• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrosorio

[RESOLVIDO]Problema a inserir valores de uma form em mysql e a ler de mysql

12 mensagens neste tópico

Olá a todos. Estou a ter um problema na inserção de valores de uma form na base de dados. Consigo inserir se usar strings no código, mas a partir da form não.

Form:

<form action="registar.php" method="post">
<table>
<tr><td>Nick:</td><td> <input type="text" name="Nick" /></td></tr>
<tr><td>Nome:</td><td> <input type="text" name="Nome" /></td></tr>
<tr><td>Apelido:</td><td> <input type="text" name="Apelido" /></td></tr>
<tr><td>Mail: </td><td><input type="text" name="Mail" /></td></tr>
<tr><td>Password: </td><td><input type="password" name="Pass" /></td></tr>
<tr><td>Confirm Password: </td><td><input type="password" name="Passc" /></td></tr>
</table>
<input type="submit" />
</form>

$pass=md5($_POST[Pass]);
$query="INSERT INTO pessoa (Nick, Nome, Apelido, Mail, Pass) VALUES ('$_POST[Nick]','$_POST[Nome]','$_POST[Apelido]','$_POST[$Mail]','$pass'))";
if (mysql_query($query,$con));
	{
	echo 'Registado com sucesso!!!</br></br>Clica <a href="login.html">AQUI</a> para fazer login.';
	}
}

Sim, antes faço a ligação e escolho a base de dados correcta. O problema está mesmo em enviar os dados com as variáveis a partir da form.

Obrigado pela atenção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, esse é que é o problema... Aparece-me "Registado com sucesso!" o que indica que a query teve sucesso penso eu...

EDIT: Ups... Tenho um parêntesis a mais no fim da query  :wallbash:

Obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

$pass=md5($_POST[Pass]);
$query="INSERT INTO pessoa (Nick, Nome, Apelido, Mail, Pass) VALUES ('$_POST[Nick]','$_POST[Nome]','$_POST[Apelido]','$_POST[$Mail]','$pass'))";
if (mysql_query($query,$con));
	{
	echo 'Registado com sucesso!!!</br></br>Clica <a href="login.html">AQUI</a> para fazer login.';
	}
}

Não sei se reparas-te mas o tu não tens aspas no nome do campo post. Experimenta assim:

$query='INSERT INTO pessoa (Nick, Nome, Apelido, Mail, Pass) VALUES
('.$_POST['Nick'].','.$_POST['Nome'].','.$_POST['Apelido'].','.$_POST['Mail'].','.$pass.')';

Edit: Tens uma ")" a mais no fim.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, agora o problema é outro. O login não funciona porque a query à base de dados não funciona. Tenho esta query:

$query="SELECT * FROM pessoa WHERE Nick = '$_POST[Nick]'";
$result=mysql_query($query,$con);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta isto:

$nick=$_POST['Nick'];
$query="SELECT * FROM pessoa WHERE Nick = '$nick'";
$result=mysql_query($query,$con);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta isto:

$nick=$_POST['Nick'];
$query="SELECT * FROM pessoa WHERE Nick = '$nick'";
$result=mysql_query($query,$con);

Não funcionou :D obrigado pela tentativa

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens a certeza que o nome do campo na tabela é Nick?

Dá-te algum erro? O_o

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens a certeza que o nome do campo na tabela é Nick?

Dá-te algum erro? O_o

As queries não estão a dar erro nenhum. Acontece que a variável $result não fica com nenhum valor, ou seja, quando faço echo aparece-me "Resource id #2".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê se isto dá em alguma coisa. Porque não te esqueças que o query devolve-te todos os valores, e não só o campo onde fazes a search.


$nick=$_POST['Nick'];
$query="SELECT * FROM pessoa WHERE Nick = '$nick'";
$result=mysql_query($query,$con);

$nick_db=mysql_result($result,0,'Nick');
echo $nick_db;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ihhh Obrigado :D

Desculpa lá ter estado a fazer-te perder tempo com uma coisa destas... Estava perfeitamente convencido que a query devolvia uma array, mas é preciso sacar os valores do campos com o mysql_result, claro... Que erro mais noob...

Obrigadão :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora