Jump to content
luanda

Mostrar apenas as reservas do usuário logado

Recommended Posts

Eu queria saber como posso mostrar apenas as reservas feitas pelo usuário logado, pois tentei um monte de código e nenhum deles funcionou. Tentei declarando uma session com o ID, que até pegou, porém exibiu informações de outro usuário. 

 

Lembrando que posso reservar com nome, sobrenome, e-mail e telefone.

<?php
    session_start();
    if($_SESSION['nivel'] == "usuario"){}else{
        
                
        header("Location:../login.php");
    exit;
        
    }

    include "php/conexao.php";

    $query = mysql_query ("SELECT * FROM cadastro WHERE username = '{$_SESSION['username']}' AND id='{$_SESSION['id']}' AND senha = '{$_SESSION['senha']}'") or die(mysql_error());
    $usuario = mysql_fetch_assoc($query);

?>


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>Page Title</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" type="text/css" media="screen" href="css/index.css" />
    </head>

    <body>

        <!-- header -->
        <header id="header">
            <h2>Painel administrativo</h2>
        </header>

        <!-- sidebar -->
        <aside id="sidebar">
            <div class="links">
                <h2><?php echo $usuario['username']; ?></h2>
            </div>
            <div class="links"><div style="cursor: pointer;"><a onclick="mostra('conta');">Conta</a></div></div>
            <div class="links"><div style="cursor: pointer;"><a onclick="mostra('reserva');">Reserva</a></div></div>
            <div class="links"><a href="php/logout.php">Sair</a></div>
        </aside>

        <!-- conteudo -->
        <div id="content">
            
            <div id="conta">
                
                <div class="tabela">
                    <table width="100%" border="1">
                    <tr>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Nome:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">E-mail:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Telefone</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Mensagem:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Data:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Editar:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Excluir:</td>
                    </tr>

                    <?php
                    $query = mysql_query("SELECT * FROM cadastro WHERE username ='{$_SESSION['username']}'");
                    while ($linha = mysql_fetch_array ($query)){
                
                    ?> <!-- esse é para exibir as informações da conta; funciona normalmente -->
                    
                    <tr>
                        <td height="45" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['nome']?></td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['email']?></td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['username']?></td>

                        <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="formeditclientes.php?username=<?php echo $linha ['username']?>"></a></td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="eliminar.php?username=<?php echo $linha ['username']?>"></a></td>
                    </tr>
                    <?php
                    
                    }
                    ?>
                    </table>
                </div>
            </div>

            <div id="reserva" style="display:none;">

                <div class="tabela">
                    <table width="100%" border="1">
                    <tr>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Nome:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">E-mail:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Telefone</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Mensagem:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Data:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Editar:</td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF">Excluir:</td>
                    </tr>

                    <?php
                    $query = mysql_query("SELECT * FROM reserva");
                    while ($linha = mysql_fetch_array ($query)){
                
                    ?> <!-- esse é o da reserva; que eu editei agora para aparecer todos, mas que eu gostaria que mostrasse apenas a do usuário logado -->
                    
                    <tr>
                        <td height="45" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['nome']?></td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['email']?></td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['telefone']?></td>

                        <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="editar_reserva.php?id=<?php echo $linha ['id']?>"></a></td>
                        <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="eliminar_reserva.php?id=<?php echo $linha ['id']?>"></a></td>
                    </tr>
                    <?php
                    
                    }
                    ?>
                    </table>
                </div>

            </div>

        </div>
    </body>

    <script>
        function mostra(theId){
            var theArray= new Array('conta', 'reserva');
            w=document.getElementById(theId)
            if(w.style.display=="block"){}else{ 

            
            
                for(i=0; i<theArray.length; i++){
                        if(theArray[i] == theId){
                            w.style.display='block';
                        }else{
                            document.getElementById(theArray[i]).style.display='none';
                        }
                }
                }
                
        }
    </script>
</html>

 

Share this post


Link to post
Share on other sites
$query = mysql_query("SELECT * FROM cadastro WHERE username ='{$_SESSION['username']}'");

 

$query = mysql_query("SELECT * FROM reserva");

 

Olá, basta utilizar a mesma lógica que usou no primeiro SELECT no segundo, porém precisa que a tabela reserva tenha a coluna que grava o username. Só muda o nome da tabela:

$query = mysql_query("SELECT * FROM reserva WHERE username ='{$_SESSION['username']}'");

Trazendo para nossa lógica

// Selecione TODOS da TABELA reserva ONDE username É IGUAL A username_logado

 

Se a $_SESSION['username'] tiver valor e registro na tabela reserva irá buscar.

 

Caso não consiga, poste imagem da sua tabela aqui para analisarmos.

Share this post


Link to post
Share on other sites
1 hora atrás, marcosmarcolin disse:

$query = mysql_query("SELECT * FROM cadastro WHERE username ='{$_SESSION['username']}'");

 


$query = mysql_query("SELECT * FROM reserva");

 

Olá, basta utilizar a mesma lógica que usou no primeiro SELECT no segundo, porém precisa que a tabela reserva tenha a coluna que grava o username. Só muda o nome da tabela:


$query = mysql_query("SELECT * FROM reserva WHERE username ='{$_SESSION['username']}'");

Trazendo para nossa lógica

// Selecione TODOS da TABELA reserva ONDE username É IGUAL A username_logado

 

Se a $_SESSION['username'] tiver valor e registro na tabela reserva irá buscar.

 

Caso não consiga, poste imagem da sua tabela aqui para analisarmos.

 

Marcos, obrigada pela ajuda. Minha tabela registra estes campos aqui, então o username não funciona. Tentei substituindo o username pela id,  mas sempre retorna com um outro registro na tabela (o id de número 7).

 

image.thumb.png.96ca23529bd65093b3b92c4c8441b73d.png

 

 

Share this post


Link to post
Share on other sites

Certo, com a session do username não irá funcionar, pois não tem essa coluna na sua tabela.

 

O que você precisa fazer para relacionar, é inserir um campo na tabela reserva que seja o mesmo da tabela de usuário, o valor no caso. Por exemplo o id_usuário. Para que toda vez que você inserir na tabela reserva, ele insira além do nome, email etc... o id do usuário, o qual nunca irá alterar.

 

Você pode por exemplo utilizar email para buscar, mas se o usuário um dia alterar o seu email, ou o nome? Ou ter usuário com o mesmo email? As informações não coincidirão mais. Crie uma session com o email do usuário que irá funcionar, segue exemplo abaixo:

 

Caso seja um projeto pequeno, pode criar um session com o email, e buscar pelo email, ou seja, o email do usuário será o email que estará na tabela reserva, aí terá relação, entendeu?

// sugiro ainda criar uma variável para passar na consulta, não é boa prática para diretamente a session
$email_logado = $_SESSION['email_logado'];
$query = mysql_query("SELECT * FROM reserva WHERE email = $email_logado'");


// ou mantenha da forma que vem fazendo
$query = mysql_query("SELECT * FROM reserva WHERE email = '{$_SESSION['email_logado']}'");

O melhor seria criar um nova coluna na tabela de reservas para gravar o id do usuário, e depois buscar na consulta, pois o id do usuário nunca irá repetir se for chave primária e auto incremento.

 

Testa e retorna pra gente, aguardo. :)

Share this post


Link to post
Share on other sites
12 horas atrás, camargo.2018 disse:

Luanda tem como mandar a sql para eu ver seu código pós em reserva não está selecionando o usuário :)

image.png.379a3763ce6142319e7320e6af3d1a43.png

Por isso está listando as reservas até de outros usuários

Eu acabei desistindo porque notei que fiz algumas coisas erradas, mas mesmo assim muito obrigada pela atenção (eu modifiquei esse trecho do código propositalmente).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By peterstefan
      Bom dia, estou fazendo uma cadastro via rest e estou utilizando o curl para cadastrar no webservice...
      Meu código está cadastrando tudo certinho, porem quando ele cadastra e mostra o retorno que foi cadastrado com sucesso ele fica o AGUARDE, CARREGANDO e não para.. não sei oque esta faltando pq já tentei varias coisas e não deu certo... 
       
       
       
      $Data = [ "nomeRazaoSocial" => $PostData['nomeRazaoSocial'], "identMF" => $PostData['identMF'], "email" => $PostData['email'], "telefone" => $PostData['telefone'], "senhaProvisoria" => $PostData['senhaProvisoria'] ]; $DataString = json_encode($Data); $curl = curl_init(WEBSERVICECADASTRO); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $DataString); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($DataString)) ); $result = curl_exec($curl); if ($result) { $jSON['success'] = "<i class='icon-checkmark'></i>Pronto, cadastro foi realizado com sucesso!"; }else{ $jSON['error'] = "<i class='icon-warning'></i>Oops! Erro ao cadastrar! Por favor, tente novamente!"; }  

       

    • By RSN
      Boa Noite,
      Preciso enviar uma consulta sql no corpo do e-mail, porém não estou conseguindo concatenar o laço while.
      <?php include_once('conexao.php'); require 'PHPMailer/PHPMailerAutoload.php'; $resultado = mysql_query("SELECT * FROM cupom WHERE FlagEstorno = 1;"); $linhas = mysql_num_rows($resultado); $mensagem = '<div class="x_content"> <table id="datatable-buttons" class="table table-striped table-bordered"> <thead> <tr> <th>Loja</th> <th>Nro Cupom</th> <th>Data</th> <th>Operador</th> </tr> </thead> <tbody> while($linhas = mysql_fetch_array( $resultado)){ echo " <tr>"; echo "<td>".$linhas['nroloja']."</td>"; echo "<td>".$linhas['NroCupom']."</td>"; echo "<td>".$linhas['DataProc']."</td>"; echo "<td>".$linhas['Operador']."</td>"; echo " </tr>"; }'; $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->Username = ''; $mail->Password = ''; $mail->Port = 587; $mail->setFrom(''); $mail->addReplyTo(''); $mail->addAddress('', 'Nome'); $mail->isHTML(true); $mail->Subject = 'Assunto do email'; $mail->Body = $mensagem; $mail->AltBody = 'Para visualizar essa mensagem acesse http://site.com.br/mail'; //$mail->addAttachment('/tmp/image.jpg', 'nome.jpg'); if(!$mail->send()) { echo 'Não foi possível enviar a mensagem.<br>'; echo 'Erro: ' . $mail->ErrorInfo; } else { echo 'Mensagem enviada.'; } ?>  
    • By c3s1nha
      Boa tarde,
       
      Preciso restaurar a estrutura de um banco de dados (tabelas,views,procedures.. etc) em outro banco de dados que esta vazio (nao tem tabela nenhuma, banco novo), utilizo o sql server. Consigo fazer utilizando o SSMS ?
      Desde ja agradeço. 
    • By Augustomesquita
      Bom dia pessoal!
      Vocês também estão programando em primeira pessoa? Recentemente escrevi este artigo e gostaria de compartilhar a ideia com vocês.
      Pare de programar em primeira pessoa!
    • By Matheus Guto
      Eae pessoal, bom sou novo no ramo e quero uma ajudinha em um erro de um programa para médias
      Parse error: syntax error, unexpected 'endif' (T_ENDIF) in C:\xampp\htdocs\atividade2.php on line 32
      ah, e tá aqui o código
       
      <html>
          <head>
              <title>Médias</title>
          <meta charset="UTF-8">
          </head>
      <body>
          <div>
              <form method="get">
                  Primeira nota:<input type="text" name="nota1"/> <br>
                  Segunda nota:<input type="number" name="nota2"/> <br>
                  Terceira Nota:<input type="number" name="nota3"/>
                  <input type="submit" name="botao" value="clique"/>
              </form>
          <?php
              if (isset($_GET["botao"])) {
                  $nota1 = isset($_GET["nota1"])?$_GET["nota1"]:"";
                  $nota2 = isset($_GET["nota2"])?$_GET["nota2"]:"";
                  $nota3 = isset($_GET["nota3"])?$_GET["nota3"]:"";
              if ($nota1 == ""|| $nota3 =="" || $nota3 ==""){
                  echo "por favor digite todas as notas";
              } else {
                  $media = ($nota1+$nota2+$nota3)/3;
              echo "a média do aluno é" . $media . "<br>";
              }  if ($media >= 7)
              echo "aprovado";
                  elseif (($media < 7) && ($media >= 5))
                  echo "recuperação";
              else{
                  echo "reprovado";
              }
          endif
      endif
      ?>
          </div>
      </body>
      </html>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.