Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
E ae pessoal beleza?
to com uma dúvida aki...
Tipo tenho um banco de dados com as notas dos alunos da escola, entao quando o aluno logar com sua matricula e com o seu nome tenho q fazer um select no banco de dados, porem esta dando erro, nao aparece as notas q estao no banco...
Matricula (id=login)
Nome(id=senha)
******
O codigo do select:
<?
include("verifica.php");
include("configuracao.php");
$db = mysql_connect ($host, $login_db, $senha_db);
$basedados = mysql_select_db($database);
$usuario = mysql_query("SELECT * FROM notas WHERE login='$login'") or print (mysql_error());$matematicabanco = $linha["matematica"];
$biologiabanco = $linha["biologia"];
}
?>
<html>
<head>
<title>Página de notas</title>
</head>
<body>
<div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Matematica: <b><? echo $matematicabanco ?></b><br>
<br>
<div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Biologia <b><? echo $biologiabanco ?></b><br>
<br>
Menu de tarefas:<br>
<a href="meus_dados.php">Ver Meus Dados</a> - <a href="alt_dados.php">Alterar Meus Dados</a> - <a href="logout.php">Sair</a></font></div>
</body>
</html>
-------------
Desde já agradeço!
O erro é q nao mostra o resultado do selct!
Os campos ficam em brancos!
Faz o seguinte:
$usuario = mysql_query("SELECT * FROM notas WHERE login='$login'") or die (mysql_error());
$linha = mysql_fetch_assoc($usuario);
?>e:
<div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Matematica: <b>
<?php echo $linha['matematica']; ?></b><br>
<br />
<div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Biologia <b>
<?php echo $linha['biologia']; ?></b><br>
De onde supostamente vem a variavel $login ??>
Faz o seguinte:
$usuario = mysql_query("SELECT * FROM notas WHERE login='$login'") or die (mysql_error());
$linha = mysql_fetch_assoc($usuario);
?>e:
<div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Matematica: <b>
<?php echo $linha['matematica']; ?></b><br>
<br />
<div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Biologia <b>
<?php echo $linha['biologia']; ?></b><br>
De onde supostamente vem a variavel $login ??
Fiz isso ae e continua sem mostrar o resultado do select...
$login = o numero da matricula do aluno....
Mas apareceu algum erro na tela? qual ?
e de onde vem $login ??
nessa pagina você nao criou essa variavel..
Não aparece nenhum erro so nao mostra o resultado do select!
onde era para aparecer os dados do banco de dados, os espaços ficam em branco...
$login é a matricula q o usuario usa para entrar na pagina...
o aluno coloca os dados no formulario, ae o furm. envia os dados:
<?
include "configuracao.php";
$db = mysql_connect ($host, $login_db, $senha_db);
$basedados = mysql_select_db($database);
$resultado = mysql_query("SELECT login, senha FROM notas WHERE login='$login' AND senha='$senha'") or print (mysql_error());$loginbanco = $linha["login"];
$senhabanco = $linha["senha"];
}
if($loginbanco == $login AND $senhabanco == $senha){
session_register(login);
session_register(senha);
header("Location: notas.php");
}<META HTTP-EQUIV=REFRESH CONTENT='0; URL=matricula.php'>
<script type=\"text/javascript\">
alert(\"Erro: Usuário ou senha inválidos!\");
</script>
";
}
?>
e depois entra a parte do select.
Usei o mesmo codigo para o sistema de login e funciona...
A variavel $login só fica armazenada na memória, para a página direcionada pelo formulário...
No caso o processamento do login...
Talvez seja melhor você armazenar a $login em um session na hora do login para recuperalá depois...
Pra te mostrar oque ta acontecendo.. faca isso aqui:
$sql = "SELECT * FROM notas WHERE login='$login'";
echo $sql.'<br />';
$usuario = mysql_query( $sql ) or die (mysql_error());
O teu servidor esta com register_globals On ?
isso eh ruim.
>
Pra te mostrar oque ta acontecendo.. faca isso aqui:
$sql = "SELECT * FROM notas WHERE login='$login'";
echo $sql.'<br />';
$usuario = mysql_query( $sql ) or die (mysql_error());
O teu servidor esta com register_globals On ?
isso eh ruim.
Agora apareceu isso aki : SELECT * FROM notas WHERE login='lcladeira'
tah = o login q eu usei em outra pagina...
sera q se eu mudar para
$usuario = mysql_query("SELECT * FROM notas WHERE login='$matricula'") or die (mysql_error());
$linha = mysql_fetch_assoc($usuario);
?>
vai dar certo?
Se $matricula estiver recebendo valor que possibilite uma pesquisa (não em branco) teria que funcionar. Isso é claro, levando em conta a idéia de seu código estar se conectando normalmente ao banco de dados.
O que você fez aí foi só modificar os nomes das variaveis.
Você não está, nesse ultimo exemplo, correndo os resultados no laço. Isso faria com que você mostrasse apenas uma linha.
Quando você executou o
echo $sql, ao aparecer a query na tela, seria uma boa você tentar rodar ela direto no console do banco pra ver se te traz resultado.
Valeu pela ajuda ae pessoal!
Consegui resolver aki...
a questao era q quando eu passava para a outra pagina a seção estava continuando, entao tive q destruir a seção antes de passar para a outra pagina!
Abrss
---
Resolvido
Entao na verdade, o causador de tudo isso era:
>
O teu servidor esta com register_globals On ?
isso eh ruim.
:lol:
Procure usar os arrays super globais..
$_SERVER, $_POST, $_GET..
Por esse motivo( o teu problema nesse topico ), e outros, eh que essa diretiva sera desligada em futuras versoes do php.
Quando for postar códigos, coloca a tag code pra ficar mais fácil de visualizar.
Qual erro?