Ir para conteúdo

POWERED BY:

Arquivado

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

opl12

Variável de um Array - Resultado de Um SELECT do Banco de Dados

Recommended Posts

Olá Mestres,

Não achei um tópico com este assunto

 

No Código abaixo, eu dou um echo e me retorna o valor de um array,

*que é o resultado de um SELECT feito no Banco de Dados PhpMyAdmin

*no banco tenho a tabela LOGIN, com as colunas: Nome, Password, Nivel

 

no PHP eu carrego as variáveis $nome e $password

com isso eu faço um select com uma condição na coluna "nivel" .. para me trazer apenas o resultado onde consta a palavra "staff" na coluna "nivel"

 

ao dar um echo:

echo $key.": ".$value."<br>";

 

o PHP me retorna:

nome: jeferson
password: 123
nivel: staff

 

***a pergunta:

Tem como eu gravar o resultado da coluna "nivel" ( que neste caso é "staff" ) em uma variável?? ao ponto de dar um echo e aparecer apenas a palavra "staff" ?

 

Se puderem me ajudar, já agradeço

 

<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <title>Comprovar Usuário</title>
    <meta charset="utf-8">
  </head>
  <body>
	
		<?php
            $nome = "jeferson";
            $password = "123";
            
			try
			{
				$base=new PDO("mysql:host=localhost;dbname=painel","root","");
				
				$base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
				

				$sql="SELECT nome, password, nivel FROM login WHERE nome= :nome AND password= :password";
				$resultado=$base->prepare($sql);
				
				$resultado->bindValue(":nome",$nome);
				$resultado->bindValue(":password",$password);

				$resultado->execute();
                $result = $resultado->fetch(PDO::FETCH_ASSOC);								


                
                foreach ($result as $key => $value)
                {
                    
                 echo $key.": ".$value."<br>";
                  
                }
                                
   

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

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É bom conhecer o funcionamento do método fetch para enteder o que ele está fazendo:

https://www.php.net/manual/en/pdostatement.fetch.php

 

O método fetch tem vários parâmetros, mas o mais importante é nesse caso é o primeiro. Que pode ser um dos seguinte:

  • PDO::FETCH_ASSOC;
  • PDO::FETCH_BOTH;
  • PDO::FETCH_BOUND;
  • PDO::FETCH_CLASS;
  • PDO::FETCH_INTO;
  • PDO::FETCH_LAZY;
  • PDO::FETCH_NAMED;
  • PDO::FETCH_NUM;
  • PDO::FETCH_OBJ;
  • PDO::FETCH_PROPS_LATE.

Não precisa se preocupar com todos, apenas com 3:

  • PDO::FETCH_ASSOC;
  • PDO::FETCH_BOTH;
  • PDO::FETCH_NUM.

PDO::FETCH_ASSOC retornará um array associativo, então, com a sua consulta:

$sql="SELECT nome, password, nivel FROM login WHERE nome= :nome AND password= :password";

Eu posso acessar os valores de forma associativa:

$result = $resultado->fetch(PDO::FETCH_ASSOC);

echo $result['nome'];
echo $result['password'];
echo $result['nivel'];

Se você quiser salvar em uma variável, basta fazer o seguinte:

$nome = $result['nome'];
$password = $result['password'];
$nivel = $result['nivel'];

Já PDO::FETCH_NUM retornará um array indexado (numérico) na ordem que são retornados pela consulta, então, com a sua consulta, o resultado seria o seguinte:

$result = $resultado->fetch(PDO::FETCH_NUM);

echo $result[0]; //nome
echo $result[1]; //password
echo $result[2]; //nivel

Já o PDO::FETCH_BOTH é uma combinação das duas formas, ou seja, você pode acessar os dados da maneira que quiser (conforme os exemplos acima).

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.