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

FerFil

PHP & MySQL - Erro na busca de dados [Resolvido]

4 mensagens neste tópico

Boas ppl...

Tou a fazer uma área pessoal pros utilizadores no meu site, e o problema é este:

Quando um utilizador acede à área pessoal os dados que são apresentados são os ultimos que foram inseridos na base de dados.

Nesta base de dados existem 3 utilizadores - Ana, Ze e Pedro - a ana tem user_id nr 1, o Ze é o nr 2 e o Pedro é o nr 3. Com qualquer utilizador que acesso os dados apresentados são os do Pedro.

A base de dados:

CREATE TABLE tutorial(
user_id int(11) NOT NULL auto_increment,
username varchar(8) NOT NULL,
email varchar(80) NOT NULL,
password varchar(6) NOT NULL,
nome varchar(80) NOT NULL,
dt_nascimento date NOT NULL,
morada varchar (80) NOT NULL,
cp int(7) NOT NULL,
localidade varchar (80) NOT NULL,
sexo char(1) NOT NULL,
pais varchar(30),
contacto int(9),
PRIMARY KEY (user_id),
UNIQUE id (user_id)
);

A pesquisa feita em PHP

<?
                        $sql = "SELECT * FROM dp ORDER BY user_id";
		$resultado = mysql_query($sql) or die ("Não é possivel fazer a consulta à base de dados".mysql_error());

		while ($row = mysql_fetch_array($resultado)){
			   $id = $row['user_id'];
			   $username = $row['username'];
			   $email = $row['email'];
			   $pass = $row['password'];
			   $nome = $row['nome'];
			   $dn = $row['dt_nascimento'];
			   $morada = $row['morada'];
			   $cp = $row['cp'];
			   $local = $row['localidade'];
			   $pais = $row['pais'];
			   $contacto = $row['contacto'];
		}
		// Apresentacao do codigo postal.
		$cp_normal = substr($cp, 0, 4);
		$cp_extra = substr($cp, 4, 3);
		// fim da definicao de apresentacao do codigo postal.

echo "$id";<br>
echo "$username";<br>
echo ucwords("$nome");<br>
?>
<input type="password" value="<? echo "$pass"; ?>" name="pass" size="6" maxlength="6"><br>
<input name="email" type="text" value=" <? echo "$email"; ?> " size="40"><br>
<input name="morada" type="text" value=" <? echo "$morada"; ?> " size="40"><br>
<input name="localidade" type="text" value="<? echo"$local"; ?>" size="40"><br>
<input type="text" value=" <? echo "$cp_normal"; ?> " name="cp1" size="4" maxlength="4">
-
<input type="text" value="<? echo"$cp_extra"; ?>" name="cp2" size="3" maxlength="3"><br>
<input name="pais" type="text" value="<? echo ucfirst("$pais"); ?>" size="10"><br>
<input name="contacto" type="text" value="<? echo "$contacto"; ?>" size="10"><br>

Onde tou a errar??  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque fazes uma consulta à BD, mas retorna-te todos os dados já que não especificas-te uma condição.

Terás de fazer algo como:

$sql = "SELECT * FROM dp WHERE user_id=3 ORDER BY user_id";

Metes um input para o nome por exemplo, e depois fazes uma consulta com base no nome:

$user_name = $_POST['name'];

$sql = "SELECT * FROM dp WHERE username=$user_name ORDER BY user_id";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hipnoted, obrigadão - quem sabe, sabe  :ipool:

Em X de utilizar:

$username=$_POST['username'];

utilizei a SESSION ficando assim:

$username = $_SESSION['username'];
$sql = "SELECT * FROM dp WHERE username='$username' ORDER BY user_id";
$resultado = mysql_query($sql) or die ("Não é possivel fazer a consulta à base de dados".mysql_error());

A coisa resulta, não sei se é da maneira mais correcta  :hmm:

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