Ir para conteúdo

POWERED BY:

Arquivado

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

Klash1

Puxar dados somente para um usuário

Recommended Posts

Eae galera!

 

Sou iniciante com PHP, estou querendo fazer o seguinte:

Puxar os dados que foram inseridos e mostrar somente para o usuário específico.

Vou explicar melhor, antes vou deixar como o sistema está funcionando.

 

Quando vou montar o treino, mostra todos os clientes cadastrados.

 

montartreino.png.757dfea90ae4a5b5df33eeb99bbdd79f.png

 

Tabela Banco de dados:

 

tabelatreino.thumb.png.d47f5e7f274aa3cc78cba647958986f2.png

 

 

Esses clientes são cadastrados através dessa página:

 

cadastraraluno.png.b9eea5ee45420de3d2dadee32de7641a.png

 

 

Tabela Clientes:

 

tabelaclientes.thumb.png.2001fa8888132c68ddd3ee6934d6322c.png

 

Porém, tenho outra página de login, que cadastra o login dos usuários, incluso o tipo de acesso:

 

cadastrarlogin.png.f8ce8edf612a2ddc7371de6ca30948a0.png

 

Tabela Usuários:

 

id

login_usuario

senha_usuario

id_tipo_acesso

 

 

Quando cadastro o treino, ele lista todos os treinos cadastrados:

 

listartreinos.png.76ff51f2e32b186f633990e9244371d1.png

 

 

Painel ADM:

 

paineladm.thumb.png.c097ed8e0b8d7e4366c9b54fc5a5eadb.png

 

Área do Aluno:

 

areadoaluno.png.67739e2a4b8348cac195773132237fb4.png

 

 

Eu quero que aconteça o seguinte:

Quando eu cadastrar o treino, os dados seja inserido para determinado usuário e que se pode ser visto por esse usuário. Exemplo:

Tem 3 usuários: João, José e Pedro

Eu cadastro um treino para João, somente João vai poder ver aquele treino cadastrado, que vai estar na área do aluno (como na imagem), na opção Ver Treino.

 

Como fazer isso?

 

Vou deixar os códigos, caso queiram entender melhor a lógica que estou utilizando.

 

inserirTreino.php

 

<!doctype html>
<html lang="pt-br">
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

		<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
		<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link href="bootstrap/css/style.css" rel="stylesheet">
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
		<title>Montar Treino - Hércules Academia de Musculação</title>

		
	</head>
	<body class="adminstrutor">
		
			<p class="menuadm"><img src="bootstrap/img/logo.jpg" class="rounded-circle"><br>
                Área Restrita - Instrutor</p>
                <div class="w3-container w3-grey">
                    <h2 style="text-align: center;">Montar Treino</h2>
                </div>
                <br>
                <div class="d-flex justify-content-center align-items-center container ">
                    
                <form id="frmCadTreino" name="frmCadTreino" method="post" action="insTreino.php" role="form">
          <div class="form-group">
             <label for="lblCliente">Cliente:</label>
             <!-- recuperar dados para serem alocados no select -->
             <?php
                      require_once('conectar.php'); 
                      $con = open_database();
                      selectDb();
                      $rsCli = mysql_query("select * from clientes;"); 
                      close_database($con);
             ?>
             <!-- Carregamentos dos dados e construção do select -->
             <select name="slcCliente" id="slcCliente" class="form-control">
                 <!-- definir primeira linha e deixar selecionado -->
                <?php $row = mysql_fetch_array($rsCli); ?>
                <option value="<?php echo $row['id'] ?>" selected>
                  <?php echo $row['nome'];?> 
                </option>
                <!-- definir demais linhas do select option -->
                <?php while($row = mysql_fetch_array($rsCli)){?>
                  <option value="<?php echo $row['id'] ?>"><?php echo $row['nome'];?> </option>
                <?php }?>
             </select>      
          </div>
          <br><br> 
        <div class="form-group">
            <label for="lblData">Data: </label>
            <input type="date" class="form-control" name="txtdata" id="txtData"
                   value="<?php (new DateTime())->format('Y-m-d') ?>"
        </div>
                </div>
                <div class="form-group">
          <label for="lblObj">Objetivo: </label>
          <input type="text" class="form-control" name="txtObj" id="txtObj" placeholder="Objetivo do Aluno">
       </div>
        <div class="form-group">
          <label for="lblExe">Exercício:</label>
          <input type="text" class="form-control" name="txtExe" id="txtExe" placeholder="Nome do Exercício">
       </div>
       <div class="form-group">
          <label for="lblSer">Séries:</label>
          <input type="text" class="form-control" name="txtSer" id="txtSer" placeholder="Quantidade Séries">
       </div>
       <div class="form-group">
          <label for="lblRep">Repetições:</label>
          <input type="text" class="form-control" name="txtRep" id="txtRep" placeholder="Quantidade de Repetições">
       </div>
       <input name="bt_cad" id="bt_cad" class="btn btn-success " type="submit" value="Cadastrar Treino"> 
                </body>
                </html>
       
       

inserirClientes.html

 

<!doctype html>
<html lang="pt-br">
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

		<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
		<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link href="bootstrap/css/style.css" rel="stylesheet">
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
		<title>Cadastrar Aluno - Hércules Academia de Musculação</title>

		
	</head>
	<body class="adminstrutor">
		
			<p class="menuadm"><img src="bootstrap/img/logo.jpg" class="rounded-circle"><br>
                Área Restrita - Instrutor</p>
                <div class="w3-container w3-grey">
                    <h2 style="text-align: center;">Cadastrar Aluno</h2>
                  </div>
                  <br>
                  <div class="d-flex justify-content-center align-items-center container ">
                    
    <form id="frmCadastrarClientes" name="frmCadastrarClientes" method="post" action="inserirCli.php">
      <div class="form-row">
        <div class="col">
            <label for="lblNom">Nome do Aluno:</label>
            <input type="text" class="form-control" id="txtNom" name="txtNom" placeholder="Nome do Aluno">
        </div>
        <div class="col">
            <label for="lblCpf">CPF:</label>
            <input type="text" class="form-control" name="txtCpf" id="txtCpf"  placeholder="CPF do Aluno">
        </div>
      </div>
      <div class="form-row">
          <div class="col">
              <label for="lblNas">Nascimento</label>
              <input type="text" class="form-control" name="txtNas" id="txtNas" placeholder="Data de Nascimento">
          </div>
          <div class="col">
              <label for="lblCel">Celular:</label>
              <input type="text" class="form-control" name="txtCel" id="txtCel" placeholder="Número do Celular">
          </div>
        </div>
        <div class="form-row">
            <div class="col">
                <label for="lblEnd">Endereco:</label>
                <input type="text" class="form-control" name="txtEnd" id="txtEnd" placeholder="Endereço do Aluno">
            </div>
            <div class="col">
                <label for="lblBai">Bairro:</label>
                <input type="text" class="form-control" name="txtBai" id="txtBai" placeholder="Bairro do Aluno">
            </div>
          </div>
          <div class="form-row">
              <div class="col">
                  <label for="lblCep">CEP:</label>
                  <input type="text" class="form-control" name="txtCep" id="txtCep" placeholder="CEP do Aluno">
              </div>
              <div class="col">
                  <label for="lblCid">Cidade:</label>
                  <input type="text" class="form-control" name="txtCid" id="txtCid" placeholder="Cidade do Aluno">
              </div>
            </div>
        </div>
        <div class="d-flex justify-content-center align-items-center container ">
        <div class="form-row">
        <div class="col-sm-4">
       <input name="bt_cad" id="bt_cad" class="btn btn-success " type="submit" value="Cadastrar Aluno"> 
    </div>
    <div class="col-sm-4">
       <input name="bt_voltar" id="bt_voltar" class="btn btn-primary" type="button" value="Ver Todos Clientes"
             onclick="javascript:location.href='listarClientes.php'"> 
            </div>
            </div>
            </div>
            </form>
</body>
</html>

 

inserirLogin.html

 

<!doctype html>
<html lang="pt-br">
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

		<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
		<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link href="bootstrap/css/style.css" rel="stylesheet">
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
		<title>Cadastrar Login - Hércules Academia de Musculação</title>

		
	</head>
	<body class="adminstrutor">
		
			<p class="menuadm"><a href="paineladm.html"><img src="bootstrap/img/logo.jpg" class="rounded-circle"></a><br>
                Área Restrita - Instrutor</p>
                <div class="w3-container w3-grey">
                    <h2 style="text-align: center;">Cadastrar Login</h2>
                  </div>
                  <br>
                  <div class="d-flex justify-content-center align-items-center container ">
                    
                  <form action="controle.php" method="post">
                  <label>Login do Usuário:</label>
                  <input type="text" class="form-control" name="login" value="" required/><br>
                  <label>Senha do Usuário:</label>
        <input type="password" class="form-control" name="senha" value="" required /><br>
        <label>Tipo de usuário:</label>
        <select name="tipo_usuario" class="form-control" required>
            <option value="">Selecione</option>
            <option value="1">Usuario Comum</option>
            <option value="2">Administrador</option>
        </select><br /><br>
        <input type="submit" class="btn btn-success" name="cadastrar" value="Cadastrar" style="left: 57%; top: 70%;"/>
        </form>
    </body>
</html>

listarTreinos.php

 

<?php
  /*   session_start();
    if (!isset($_SESSION['user'])) //AND (!isset($_SESSION[nome])) ) 
        Header("Location: index.html"); */

     require_once('conectar.php'); 
     $con = open_database();
     selectDb();
     $rs = mysql_query("select treino.id, treino.cliente, 
                        clientes.nome,  treino.data, treino.objetivo, treino.exercicio,
                        treino.series, treino.repeticoes
                        from treino INNER JOIN clientes
                        on treino.cliente = clientes.id;"); 
     close_database($con); 
?>
<html>
    <head>
        <meta charset="UTF-8">
        <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
	    <link href="bootstrap/css/style.css" rel="stylesheet">
        <title>Gerenciar Treinos - Hércules Academia de Musculação</title>
    </head>
    <body class="container">
       
        <div class="row col-md-7">
        <table  class="table table-striped table table-hover">
            <tr>
                 <th>ID</th>
                 <th>CliId</th>
                 <th>Nome Cliente</th>
                 <th>Data</th> 
                 <th>Objetivo</th> 
                 <th>Exercicio</th> 
                 <th>Series</th> 
                 <th>Repeticoes</th>  
                 <th></th>
                 <th></th>
            </tr>
            <?php while ($row = mysql_fetch_array($rs)) { ?>
                <tr>
                   <td><?php echo $row['id'] ?></td>
                   <td><?php echo $row['cliente'] ?></td>
                   <td><?php echo $row['nome'] ?></td>
                   <td><?php echo (new DateTime($row['data']))->format("d-m-Y"); ?></td>
                   <td><?php echo $row['objetivo'] ?></td>
                   <td><?php echo $row['exercicio'] ?></td>
                   <td><?php echo $row['series'] ?></td>
                   <td><?php echo $row['repeticoes'] ?></td>

                   <td>
                      <button type="button" class="btn btn-warning" 
                         onclick="javascript: location.href='frmEdtPro.php?id=' +
                         <?php echo $row['id'] ?>">
                        <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
                      </button>
                   </td>
                   <td>
                      <button type="button" class="btn btn-danger" 
                         onclick="javascript: location.href='frmRemPro.php?id=' +
                         <?php echo $row['id'] ?>">
                        <span class="glyphicon glyphicon-remove-sign" aria-hidden="true"></span>
                      </button>
                   </td>
                </tr>
            <?php } ?>  
        </table>
    </<body>
        
</html>

 

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Desde 2013 o php.net recomenda não usar mais as extensões mysql_*
Ao invés disso use mysli ou pdo

mysql_.jpgphp550.jpg

 

Para mostrar apenas os dados do usuário logado, use a id do usuário logado na query que busca os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o mysql_* foi descontinuado desde o PHP7 devido a suas inúmeras falhas principalmente nas questões de segurança.

 

PDO desde seu surgimento até os dias de hoje é a melhor opção em qualquer aspecto quando o assunto for manipulação de banco de dados.

Caso não conheça ou não saiba usar leia isso:

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

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