Ir para conteúdo

POWERED BY:

Arquivado

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

Iury Borges

Como faze uma busca no banco de dados?

Recommended Posts

Eu criei um cadastro, caiu no meu banco, agora quero fazer com que meu login funcione, algo que vai no meu banco de dados verifica se meu nome e senha existe, caso sim login com sucesso, caso não não encontrado no sistema.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ele só faz a busca:

<?php
$host = 'localhost'; // endereço do seu mysql
$user = 'root'; // usuário
$pass = ''; // senha
$con = mysql_connect($host,$user,$pass); // função de conexão
$db = 'contato'; // nome do banco de dados
mysql_select_db($db,$con) or print mysql_error(); // seleção do banco de dados
$sql = mysql_query("SELECT * FROM servidor WHEREemail LIKE '%$busca%' OR senha LIKE '%$busca%'");
// query para selecionar todos os campos da tabela usuários se $busca contiver na coluna nome ou na coluna email
// % antes e depois de $busca serve para indicar que $busca por ser apenas parte da palavra ou frase
// $busca é a variável que foi enviada pelo nosso formulário da página anterior
$count = mysql_num_rows($sql);
// conta quantos registros encontrados com a nossa especificação
if ($count == 0) {
echo "Nenhum resultado!";
} else {
// senão
if ($count == 1) {
echo "1 resultado encontrado!";
}
// se houver um resultado diz que existe um resultado
if ($count > 1) {
echo "$count resultados encontrados!";
}
// se houver mais de um resultado diz quantos resultados existem
while ($dados = mysql_fetch_array($sql)) {
// enquanto houverem resultados...
echo "$dados $dados[senha]<br>";

 

Eu quero que faça busca, confere se ele existe, caso sim login com sucesso, caso não não encontrado no sistema, e entra.

 

 

ai coloquei em baixo de tudo o seguinte código:

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos tentar melhorar e entender o funcionamento desse código. :thumbsup:

 

Você já tem o formulário enviando os valores pelo método. Agora você precisa processar isso. (transformar areia em vidro)

 

Nesse seu código, você precisa pegar o valor enviado pelas variáveis superglobais ($_GET ou $_POST) definidas no formulário. Com esse valor em mãos, basta processar.

 

<?php
$host = 'localhost'; // endereço do seu mysql
$user = 'root'; // usuário
$pass = ''; // senha
$con = mysql_connect($host,$user,$pass); // função de conexão
$db = 'contato'; // nome do banco de dados
mysql_select_db($db,$con) or print mysql_error(); // seleção do banco de dados

// RECEBER O VALOR DO FORMULARIO
$nome = $_POST['nome_input_formulario'];

$sql = mysql_query("SELECT * FROM servidor WHERE nome LIKE '%$nome%' OR email LIKE '%$nome%'"); // A ideia aqui é pegar todos os valores da tabela "servidor" na coluna "nome" e "email" que contenham o valor da variável $nome. Com o resultado você faz o que quiser, pode fazer uma if chamando um redirecionamento.
// query para selecionar todos os campos da tabela usuários se $busca contiver na coluna nome ou na coluna email
// % antes e depois de $busca serve para indicar que $busca por ser apenas parte da palavra ou frase
// $nome é a variável que foi enviada pelo nosso formulário da página anterior

$count = mysql_num_rows($sql);
// conta quantos registros encontrados com a nossa especificação
if ($count == 0) {
    echo "Nenhum resultado!";
} else {
    // senão
    if ($count == 1) {
        echo "1 resultado encontrado!";
    }
    // se houver um resultado diz que existe um resultado
    if ($count > 1) {
        echo "$count resultados encontrados!";
    }
    // se houver mais de um resultado diz quantos resultados existem
    while ($c_nome = mysql_fetch_array($sql)) {
        // enquanto houverem resultados...
        echo "$c_nome['nome'] $c_nome['email']<br>"; //"nome" e "email" são os nomes de suas colunas no banco de dados, caso não saiba.
        // exibir a coluna nome e a coluna email
    }
}
?>

Fiz bem simples, apenas para você entender como funciona. Testa ai, posso ter esquecido de algo. :D

Não tenha vergonha de perguntar, qualquer dúvida a gente pode ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ufa, achei a solução, mais veio outro problema, eu digitando qualquer email e senha ele executa a primeira opção.

 

if(isset($ler))
{
header('Location:../index.html');//leva o usuarrio ao index
}
else
{
header('Location:login.html');//retorna o usuario na página de login
echo "Não encotrado";
}
ele so leva a pessoa ao "header('Location:../index.html');//leva o usuarrio ao index", mesmo você digitando os dados errados.


coloquei $ler=$count;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou, ele só retorna a segunda opção:

 

if(!isset($ler))
{
header('Location:../index.html');//leva o usuarrio ao index
}
else
{
header('Location:login.html');//retorna o usuario na página de login
echo "Não encotrado";
}


Não quero só a primeira ou só a segunda opção, quero que de assim:

 

Digitei o email e senha correto leve para o index.html, caso email e senha não estão cadastrado ele retorna para a página de logim.



vou tenta dizer com mais claresa o que quero que meu código php faça:

 

Quero que ele busque no meu banco o email e senha, ok.

Quero que ele indetifique se o email e a senha estão correto, caso sim ele leva você para o index, caso não ele retorna ao login.



Ai entra isso

 

if(isset($ler)) //ele vai ler se $ler exite os email e senha exitem
{
header('Location:../index.html');//leva o usuarrio ao index // se existirem, ele executa essa função.
}
else
{
header('Location:login.html');//retorna o usuario na página de login // se não existirem ele executa essa função.
echo "Não encotrado";
}
Ele fez a busca, correto, mais ele não ler se o que digitei esta correto ou incorreto atraves do meu if.


Ate tentei agora a pouco usar isso:

 

$email=$_POST['email']; //só para indentifica o que foi digitado.
$senha=$_POST['senha'];//só para indentifica o que foi digitado.
$comparando_email="select email from servidor where email='$email'";//pesquisando achei select, para fazer a comparação.
$comparando_senha="select senha from servidor where senha='$senha'";//pesquisando achei select, para fazer a comparação.
$ler=$count;
if(isset($comparando_email))//se email existe
if(isset($comparando_senha))//se senha existe
{
header('Location:../index.html');//leva o usuarrio ao index
}
else
{
header('Location:login.html');//retorna o usuario na página de login
echo "Não encotrado";
}
Você digitando errado ou certo retorna só positivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O comando que te dei não ia funcionar nunca, eu confundi o retorno que você queria como verdadeiro.

 

Verificou se está exibindo algum erro? Com o isset ele vai apenas retornar TRUE se a variavel $ler existir. Verifique se está tudo certo com essa variavel $ler.

 

Testei aqui e funcionou certinho,

 

 <?php
$ler = 'teste'; // desse modo ele vai redirecionar para minha página teste1
if(isset($ler)) //ele vai ler se $ler exite os email e senha exitem

{
 
header('Location:teste1.php');//me leva até a página teste1 se existir a variavel $ler
 
}
else
{
header('Location:teste2.php');//me leva até a página teste2 caso não exista a variavel $ler
}
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só olha meu código php e ver o que esta errado, aquele que você posto deu erro linha 33.

 

 

<?php
$host = 'localhost'; // endereço do seu mysql
$user = 'root'; // usuário
$pass = ''; // senha
$con = mysql_connect($host,$user,$pass); // função de conexão
$db = 'contato'; // nome do banco de dados
mysql_select_db($db,$con) or print mysql_error(); // seleção do banco de dados
$sql = mysql_query("SELECT * FROM servidor WHERE email LIKE '%$busca%' OR senha LIKE '%$busca%'");
// query para selecionar todos os campos da tabela usuários se $busca contiver na coluna nome ou na coluna email
// % antes e depois de $busca serve para indicar que $busca por ser apenas parte da palavra ou frase
// $busca é a variável que foi enviada pelo nosso formulário da página anterior
$count = mysql_num_rows($sql);
// conta quantos registros encontrados com a nossa especificação
if ($count == 0) {
echo "Nenhum resultado!";
} else {
// senão
if ($count == 1) {
echo "1 resultado encontrado!";
}
// se houver um resultado diz que existe um resultado
if ($count > 1) {
echo "$count resultados encontrados!";
}
// se houver mais de um resultado diz quantos resultados existem
while ($dados = mysql_fetch_array($sql)) {
// enquanto houverem resultados...
echo "$dados $dados[senha]<br>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lury

 

Tenta mudar isso aqui:

$sql = mysql_query("SELECT * FROM servidor WHERE email LIKE '%$busca%' OR senha LIKE '%$busca%'");
// query para selecionar todos os campos da tabela usuários se $busca contiver na coluna nome ou na coluna email
// % antes e depois de $busca serve para indicar que $busca por ser apenas parte da palavra ou frase
// $busca é a variável que foi enviada pelo nosso formulário da página anterior
$count = mysql_num_rows($sql)

Por isso aqui:

 

$sql ="SELECT * FROM servidor WHERE email LIKE '%$busca%' and senha LIKE '%$busca%'";
$res = mysql_query($sql,$con)

$count = mysql_result($res,0,"nome");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Damon fiz que vc pediu e continua executando a mesma coisa.

 

 

alguém me da uma luz

 

 

 

 

meu banco e mysql

 

 

 

 

Gente já vi e revi um monte de tutoriais na net e nda da dando certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, aparentemente você não está pegando o valor que está vindo do seu formulário.

Fiz esse código e está funcionando aqui. Não se esqueça de alterar todas as informações referente ao seu banco de dados corretamente, como os nomes de coluna "email" e "nome".

<?php
// ---- INICIO DAS CONFIGURAÇÕES MYSQL ----
$host = 'localhost'; // endereço do seu mysql
$user = 'root'; // usuário
$pass = ''; // senha
$con = mysql_connect($host,$user,$pass); // função de conexão
$db = 'contato'; // nome do banco de dados
mysql_select_db($db,$con) or print mysql_error(); // seleção do banco de dados
// ----- FIM DAS CONFIGURAÇÕES DE MYSQL ----

// NOTA - NÃO SE ESQUEÇA DE POR NA TAG <FORM> DE SUA OUTRA PÁGINA  - action="nomepagina.php" ( <- altere "nomepagina" para o nome dessa página aqui ) 
// method="post" <- ESSE EH O METODO DE ENVIO. 

// RECEBENDO DADOS DO FORMULARIO

$dados = $_POST['login']; // EM LOGIN COLOQUE O NOME DO SEU INPUT FEITO NO FORMULARIO
                            // $_POST PODE SER ALTERADO PARA O METODO QUE VOCÊ DEFINIU NO FORMULARIO
                            // 
// $dados = '0'; // LINHA APENAS PARA TESTE DA CONSULTA. CASO QUEIRA TESTAR O FUNCIONAMENTO SEM USAR O $_POST, DESCOMENTE ESSA LINHA E COMENTE A $_POST
$sql = mysql_query("SELECT * FROM table_cidade WHERE email LIKE '%$dados%' OR nome LIKE '%$dados%'") or die(mysql_error()); // O DIE SERVE PARA RETORNAR MENSAGEM DE ERRO.
$count = mysql_num_rows($sql);

if($count >= 1) {
    header('Location:/login.html');//COLOCAR O NOME DA PAGINA CORRETAMENTE!
}
else {
    // direcionando o usuario para a página
    header('Location:/index.html');//COLOCAR O NOME DA PAGINA CORRETAMENTE!
}

// FIM DO CÓDIGO

Qualquer erro é só falar. :sleep:

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.