Ir para conteúdo

POWERED BY:

Arquivado

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

opl12

Select dentro de outro Select

Recommended Posts

Olá Mestres
Podem dar uma direção?

Estou apanhando em algo que aparentemente é fácil

Preciso: 

            *Tenho um Banco de Dados com as Colunas: Id, nome, password, data, nivel
            ... na coluna "nivel" tem duas informações ou é "staff" ou é "operacao"
 
            *no 1º Select ele vai validar se o usuário e a senha estão corretos conforme no Banco de Dados do PhpMyAdmin
            pelas variáveis $nome e $password
 
            *no 2º Select ele valida o nível de acesso, se é "staff" ou "operacao"
            se o $nome pertencer a um "staff".. então abre o "Site A"... se pertencer a um "operacao" vai para o "Site B"

 

<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <title>Comprovar Usuário</title>
    <meta charset="utf-8">
  </head>
  <body>
	
		<?php
			
			try
			{
				$base=new PDO("mysql:host=localhost;dbname=painel","root","");
				
				$base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
				
				// ....... select para validar login e senha se estão ok
				$sql="SELECT * FROM login WHERE nome= :nome AND password= :password";
				$resultado=$base->prepare($sql);
				$nome=($_POST["nome"]);
				$password=($_POST["password"]);
				
				$resultado->bindValue(":nome",$nome);
				$resultado->bindValue(":password",$password);

				$resultado->execute();
								
				$numero_registro=$resultado->rowCount();


				//Validar Camada de Nível
				$sql2="SELECT * FROM login WHERE name= :nome AND nivel = 'staff'";
				$resultado2=$base2->prepare($sql2);
				$nome=($_POST["nome"]);
				
				$resultado2->bindValue(":nome",$nome);
				
				$resultado2->execute();
								
				$numero_registro2=$resultado2->rowCount();
				
				
				if($numero_registro!=0) 
				{

					//echo "<h1>Logado com Sucesso</h1>";  ...Se Login e Senha estão ok, então abre a página
					session_start();

					$_SESSION["usuario"] = $_POST["nome"];
					header("Location:reports.php");
					
					
				}else                    
				{	
					echo "Senha incorreta, favor verificar! <br><br>";
					echo '<a href="index.php">Clique aqui para tentar novamente!</a>';
					
					//header("Location:index.php");
				}

			}catch(Exception $e)
			{
				die("Error" . $e->getMessage());
			}	
		?>
  </body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola veja se isso ajuda 

SELECT PRIMEIRO_NOME, ULTIMO_NOME, DATEDIFF(YEAR, DATA_ADMISSAO, GETDATE())
AS ANOS DE EMPRESA
FROM FUNCIONARIOS F INNER JOIN DEPARTAMENTOS D
ON F.ID_DEPARTAMENTO = D.ID_DEPARTAMENTO
WHERE F.SALARIO = (SELECT MAX(SALARIO) FROM FUNCIONARIOS FF, DEPARTAMENTOS DD
WHERE FF.ID_DEPARTAMENTO = DD.ID_DEPARTAMENTO
AND DD.ID_DEPARTAMENTO = F.ID_DEPARTAMENTO);

Se não ajudar de uma olhada aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não precisa das duas consultas. A primeira consulta é o suficiente.

// código exatamente igual até essa parte aqui
$resultado->execute();

//se a consulta não localizar nada, o retorno será FALSE
if ($result = $resultado->fetch(PDO::FETCH_ASSOC)) {
    //aqui você tomará as ações caso o usuário for localizado

    //agora basta usar o resultado e testar
    if ($result['nivel'] == 'staff') {
        // caso for staff
    } elseif ($result['nivel'] == 'operacao') {
        // caso for operacao
    }
}
else 
{
   //aqui será executado caso o usuário não exista então
}

 

Eu imagino que seus códigos sejam para estudos, o que é muito bom por sinal. Segue um link para você fazer um login seguro para o seu site:

https://forum.imasters.com.br/topic/557686-trabalhando-com-criptografia-de-login-com-md5/?do=findComment&amp;comment=2225560

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      No código abaixo, funciona perfeitamente quando chamo: dominio.com.br/noticia/todas
       
      <?php
          $url = (isset($_GET['url'])) ? $_GET['url'] : 'principal';
          $url = array_filter(explode('/', $url));
          //var_dump($url);
          $file = $url[0] . '.php';
          if (is_file($file)) {
              include $file;
          } else {
              include '404.php';
          }
          ?>
       
      Porém, quero usar variáveis com ? e &, tipo: dominio.com.br/busca/?campo=assunto
       
      Como faço pra conseguir isso?
       
      Valeu!!!
    • Por ILR master
      Fala pessoal, tudo na boa?
      Eu uso o wamp para desenvolver e testas meu site antes de jogar no servidor.
      A dúvida é o seguinte:
       
      No servidor, eu consigo ler as variáveis numa boa, mas no localhost não. Meu código no index está assim:
       
      $atual = (isset($_GET['pg'])) ? $_GET['pg'] : 'principal';
      $permissao = array('principal','contribua','quem-somos','politica-de-privacidade','termos-de-uso','evento','busca','galeria','galerias','clickbanner','noticia','noticias','contato','video');
      if(substr_count($atual, '/') > 0){
          $atual = explode('/', $atual);
          $pagina = (file_exists($atual[0]. '.php') && in_array($atual[0], $permissao)) ? $atual[0] : 'erro';
          $pg1 = $atual[1];
          $pg2 = $atual[2];
          $pg3 = $atual[3];
          $urltitulo = $atual[3];
      }else{
          $pagina = (file_exists($atual. '.php') && in_array($atual, $permissao)) ? $atual : 'erro';
          $codigo =0;
      };
       
      No servidor, quando chamo: dominio.com.br/pagina/variavel
      ele já identifica as variáveis  $pg1 = $atual[1]; e $pg2 = $atual[2];
      print $pg1 = pagina
      print $pg2 = variavel
      Ele me tras os resultados 

      No localhost não. Ele não reconhece as variáveis

      Alguém sabe como arrumo isso no wamp?
       
      At,
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá.
      Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
      Criei um sistema para fazer o upload de imagens e alguns campos text.
      Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
      Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
      Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
      Gostaria de saber se há como usar javascript para evitar isso?
      Agradeço desde já.

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Uploader</title>
      </head>
      <body>
          <form action="?" method="post" enctype="multipart/form-data">
              <br><br>
              <div>selecione a imagem 1</div>
              <input type="file" name="foto1" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem1">
              
              <br><br>
              <input type="file" name="foto2" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem2">
              
              <br><br>

              <input type="file" name="foto3" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem3">
              
              <br><br>
              <input type="submit" value="Enviar">
              <br><br>
          </form>
      <?php
      if ($_SERVER['REQUEST_METHOD'] == 'POST')
      {
          vardump ($_FILES);
      }
      ?>
      </body>
      </html>
       
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
×

Informação importante

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