Ir para conteúdo

POWERED BY:

Arquivado

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

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>

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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. :)

Compartilhar este post


Link para o post
Compartilhar em outros 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).

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • 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
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
×

Informação importante

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