Jump to content


Photo

Erro Ao Retornar Uma Consulta


  • Faça o login para participar
5 replies to this topic

#1 -B-

-B-

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino

Posted 18/07/2011, 22:07

Olá galera boa noite!
Esse é meu 1° post então prazer a todos B)
Estou fazendo uma consulta para validar usuário, quando a query retorna false, o script
para e não roda a rotina seguinte.

Se monto a query pra ser chamada em uma função da erro.

Segue abaixo o codigo:


<?
//========================================================================
$usuario=$_POST['usuario'];
$senha=$_POST['senha'];
include("con_mysql.php");
//=============================================================================
// Monta uma consulta SQL (query) para procurar um usuário
$sql = "SELECT id, nome, pagina FROM $tabela WHERE usuario = '$usuario' AND senha = '$senha'";
$query = mysql_query($sql)or die ("".mysql_error());
$result = mysql_fetch_row($query)or die ("".mysql_error());
if($result == true ){
//fazer redirecinamento
}else{
//voltar a pagina
}
?>

se monto uma rotina assim:

<?
//========================================================================
$usuario=$_POST['usuario'];
$senha=$_POST['senha'];
include("con_mysql.php");
//=============================================================================
// Monta uma consulta SQL (query) para procurar um usuário
function fun (){
global $usuario,$senha;
$sql = "SELECT id, nome, pagina FROM $tabela WHERE usuario = '$usuario' AND senha = '$senha'";
$query = mysql_query($sql)or die ("".mysql_error());
$result = mysql_fetch_row($query)or die ("".mysql_error());
if($result == true ){
//fazer redirecinamento
}else{
//voltar a pagina
}}
?>

Quando chamo a função mostra a seguinte MSG:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Se alguém puder me ajudar nessa , desde de já agradeço (y)

#2 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 19/07/2011, 00:22

Não duplique posts.
Isso pode lhe dar alguma advertencia.

Primeiro coloque um echo depois dessa linha e coloque aqui o que aparece na tela.

$sql = "SELECT id, nome, pagina FROM $tabela WHERE usuario = '$usuario'  AND  senha = '$senha'";
echo $sql; exit;

(y)
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#3 -B-

-B-

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino

Posted 20/07/2011, 22:51

Bom dia André não tinha reparado a duplicação dos posts ,coloquei echo como vc disse , veja o que me retornou:
SELECT id, nome, pagina FROM usuarios WHERE usuario = '' AND senha = ''


Galera se alguém puder me ajudar nessa . (y)

#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 21/07/2011, 21:43

A parte que você colou não tem problema algum de sintaxe.

Uma observação quanto ao seu código: Previna SQL-injection, leia mais na web. :)

Outra coisa, quando você faz: "".mysql_error(), esse "". é totalmente desnecessário, e incomum.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#5 -B-

-B-

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino

Posted 22/07/2011, 16:41

A parte que você colou não tem problema algum de sintaxe.

Uma observação quanto ao seu código: Previna SQL-injection, leia mais na web. :)

Outra coisa, quando você faz: "".mysql_error(), esse "". é totalmente desnecessário, e incomum.

Fala Felipe na paz ?
Cheguei a dar uma olha no SQL-injection mas a momento preciso revolver esse bug.
Sobre o "".mysql_error() é que tinha uma mensagem antes ,tirei a msg e não tirei o " " , mas valeu a dica vou modificar ;).
Agora o problema é o que está acontecendo , pois também não vejo erro na sintaxe , pelo menos a do php ,a do SQL não sei se está totalmente correta ou se é por causa das versões
do APACHE e MYSQL .
Se alguém tiver uma solução .
No aguardo (y)

#6 -B-

-B-

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino

Posted 04/08/2011, 11:38

Fala galera !

Bom não sei porque cargas d´água está funcionando, mudei um pouco a rotina ,

mas acho não chegou afetar a lógica inicial

e os processos de verificação continuaram o mesmo .

O importante é que deu certo :lol:

Valeu galera !!!
============================================================================================
Aqui segue a lógica caso sirva pra alguém no futuro:
<?
$nome = $_POST['nome'];
$senha = $_POST['senha'];
// ==============================
// Conectar ao mysql
// ==============================
$servidor = 'localhost'; // Servidor MySQL

$usu_bd = 'root'; // Usuário MySQL

$sen_bd = ''; // Senha MySQL

$banco = 'my_db'; // Banco de dados MySQL

$tabela= 'usuarios'; // Nome da tabela onde os usuários são salvos
// ==========================================================================
//=================================================================================
$link = mysql_connect($servidor, $usu_bd, $sen_bd) or die("MySQL: Não foi possível conectar-se ao servidor"." ".mysql_error());
$cone = mysql_select_db($banco, $link) or die("MySQL: Não foi possível conectar-se ao banco de dados"." ".mysql_error());
?>
<?
if (!empty($nome) AND !empty($senha)){
$cons = "SELECT id ,usuario FROM usuarios WHERE nome = '$nome' AND senha = '$senha' ";
$res = mysql_query($cons) or die (mysql_error());
$query = mysql_fetch_row($res);
if ($query == true){
echo 'Consulta foi encontrada';
}else{
echo 'Consulta não foi encontrada';
}}else{
echo 'sem valor';
}
?>





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq