Jump to content
Fernaandoreis

Sistema para listar tabelas

Recommended Posts

Seguinte... Preciso fazer um sistema que o usuário logado faça inscrição em eventos, preciso armazenar estes dados e depois listar quais eventos ele decidiu se inscrever. A parte do login está pronta. Porém esta outra, estou sem ideias para fazer.

 

Share this post


Link to post
Share on other sites

não sei se entendi bem sua duvida, 1 modelagem básica seria
você ter uma tabela d usuarios (q pelo jeito você ja criou) e outra de eventos,
mas em se tratando de bancos de dados relacionais
se varios usuarios podem se inscrever em varios eventos
e nos eventos você pode ter varios usuarios então
deverá ter uma 3ª tabela para armazenar esses relacionamentos
usuários - eventos.

Share this post


Link to post
Share on other sites
12 minutos atrás, Fernando C disse:

mas em se tratando de bancos de dados relacionais
se varios usuarios podem se inscrever em varios eventos
e nos eventos você pode ter varios usuarios então
deverá ter uma 3ª tabela para armazenar esses relacionamentos
usuários - eventos.

 

Como o Fernando comentou, a necessidade de 1 terceira tabela é aconselhavel

 

[codEventoUsuario][codEvento][codUsuario] - aqui poderia ter varias colunas referente ao usuário/evento, por exemplo se a inscricação foi paga, confirmada e etc.

 

Share this post


Link to post
Share on other sites

- Eu tenho X eventos.

Exemplo:

Evento x1= se o usuário marcar a checkbox para se inscrever, quero enviar o nome do usuário para a tabela 'Evento x1'

Evento x2= se o usuário marcar a checkbox para se inscrever, quero enviar o nome do usuário para tabela 'Evento x2'.

E assim por diante.

OBS: Ele pode se inscrever em dois ou mais eventos.

OBS: Os eventos que estiverem marcados somem da lista.

 

Estou sem idéias para fazer isso.

Queria criar uma condição que verificasse se a checkbox='inscrever' estiver marcada, envia os dados para a(s) tabela(s).

Creio que assim esteja melhor para entender

 

Share this post


Link to post
Share on other sites
17 minutos atrás, Fernaandoreis disse:

- Eu tenho X eventos.

Exemplo:

Evento x1= se o usuário marcar a checkbox para se inscrever, quero enviar o nome do usuário para a tabela 'Evento x1'

Evento x2= se o usuário marcar a checkbox para se inscrever, quero enviar o nome do usuário para tabela 'Evento x2'.

E assim por diante.

OBS: Ele pode se inscrever em dois ou mais eventos.

OBS: Os eventos que estiverem marcados somem da lista.

 

Estou sem idéias para fazer isso.

Queria criar uma condição que verificasse se a checkbox='inscrever' estiver marcada, envia os dados para a(s) tabela(s).

Creio que assim esteja melhor para entender

 

Então se você tem 50 eventos, você teria 50 TABELAS?

E quando esses eventos deixam de existir?

 

Para enviar um valor, para o servidor após marcar a checkbox, pode usar ajax.

var dadosUsuario;

function tratar(idEvento) {
  	 dadosUsuario = "evento=".encodeURIComponent(idEvento);
     iniciarAjax("CadastrarEvento.php", "POST");
}

function iniciarAjax(url, method) {
 	var ajax;
  	if (window.XMLHttpRequest)
    {
     	ajax = new XMLHttpRequest(); 
    } 
  	else if (window.ActiveXObject) 
    {
     	ajax = new ActiveXObject("Msxml2.XMLHTTP");
      	if (!ajax) 
        {
           ajax = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
  
  	if (ajax) 
      {
     	ajax.onreadystatechange = function() 
        {
         	if (ajax.readyState == 4) 
            {
               if (ajax.status == 200) 
               {
                 alert(ajax.responseText);
               }
            }
        }
        ajax.open(method, url, true);
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
      	ajax.send(dadosUsuario);
    }
}

 

No input

<input type="checkbox" onclick="tratar(2);" name="evento">

 

No PHP

 

<?php
$gmtdate = gmdate("D, d M Y H:i:s");
header("Expires: {$gmtdate} GMT");
header("Last-Modified: {$gmtdate} GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-Type: text/html;charset=UTF-8");

$evento = (isset($_POST["evento"]))$_POST["evento"] : "";

if ($evento != "") 
{
	// cadastra o evento pegando o id do usuario na session...
  	echo "Cadastrado";
}

 

 

Apenas digitei, não sei se está funcionando sem bugs, mas caso esteja o recomendado é dar uma lida sobre.

Share this post


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

Então se você tem 50 eventos, você teria 50 TABELAS?

E quando esses eventos deixam de existir?

 

Para enviar um valor, para o servidor após marcar a checkbox, pode usar ajax.


var dadosUsuario;

function tratar(idEvento) {
  	 dadosUsuario = "evento=".encodeURIComponent(idEvento);
     iniciarAjax("CadastrarEvento.php", "POST");
}

function iniciarAjax(url, method) {
 	var ajax;
  	if (window.XMLHttpRequest)
    {
     	ajax = new XMLHttpRequest(); 
    } 
  	else if (window.ActiveXObject) 
    {
     	ajax = new ActiveXObject("Msxml2.XMLHTTP");
      	if (!ajax) 
        {
           ajax = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
  
  	if (ajax) 
      {
     	ajax.onreadystatechange = function() 
        {
         	if (ajax.readyState == 4) 
            {
               if (ajax.status == 200) 
               {
                 alert(ajax.responseText);
               }
            }
        }
        ajax.open(method, url, true);
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
      	ajax.send(dadosUsuario);
    }
}

 

No input


<input type="checkbox" onclick="tratar(2);" name="evento">

 

No PHP

 


<?php
$gmtdate = gmdate("D, d M Y H:i:s");
header("Expires: {$gmtdate} GMT");
header("Last-Modified: {$gmtdate} GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-Type: text/html;charset=UTF-8");

$evento = (isset($_POST["evento"]))$_POST["evento"] : "";

if ($evento != "") 
{
	// cadastra o evento pegando o id do usuario na session...
  	echo "Cadastrado";
}

 

 

Apenas digitei, não sei se está funcionando sem bugs, mas caso esteja o recomendado é dar uma lida sobre.

 

São 10 eventos. Vou dar uma lida no código.

Share this post


Link to post
Share on other sites
4 minutos atrás, Fernaandoreis disse:

 

São 10 eventos. Vou dar uma lida no código.

Crie uma tabela eventos e relacione os mesmos ._.

Share this post


Link to post
Share on other sites

Consegui resolver o problema. Mas me surgiu outra dúvida.

 

mysql_query("INSERT INTO minicurso(nome, sobrenome) SELECT nome, sobrenome FROM USUARIO WHERE USUARIO = '$logado'");

 

como passar os valores do checkbox junto com esses dados que eu puxei de outra tabela

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 Robson Tenorio Henriques
      Estou desenvolvendo um sistema para uso particular onde realizo diariamente o cadastro dos seguintes valores no BD conforme abaixo:
      INSERT INTO `viagem`( `viagem_nr`, `viagem_valor`, `viagem_gastos`, `viagem_usuario`, `viagem_data`, `viagem_hora` ) VALUES( '$viagem_nr', '$viagem_valor', '$viagem_gastos', '$viagem_usuario', '$data_atual', '$hora_atual' ) No caso viagem_usuario é a pessoa que preencheu o formulário com as informações.
       
      Até o momento já consegui fazer um relatório do dia atual e do mês atual, abaixo esta o código do relatório diário:
      <?php include_once("../acesso/conexao.php"); include_once("../config.php"); include_once('../acesso/verifica_login.php'); //Seleção dos dados do BD com Filtragem para exibição na tabela $filtro_data = date('Y-m-d'); $result_viagem = "SELECT * FROM viagem WHERE viagem_data = '$filtro_data' ORDER BY viagem_nr"; $resultado_viagem = mysqli_query($conexao, $result_viagem); //Grafico $data1 = ''; $data2 = ''; //Query para pegar os dados da tabela $filtro_data = date('Y-m-d'); $sql = "SELECT * FROM viagem WHERE viagem_data = '$filtro_data' ORDER BY viagem_nr"; $result = mysqli_query($conexao, $sql); //Loop while ($row = mysqli_fetch_array($result)) { $data1 = $data1 . '"'. $row['viagem_valor'].'",'; $data2 = $data2 . '"'. $row['viagem_gastos'] .'",'; } $data1 = trim($data1,","); $data2 = trim($data2,","); ?> <!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"> <Meta http-equiv="refresh" content="60" /> <meta name="author" content="<?php echo $author; ?>"> <meta name="email" content="<?php echo $email_author; ?>"> <title><?php echo $title; ?></title> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.min.js"></script> <link href="https://getbootstrap.com.br/docs/4.1/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="canonical" href="https://getbootstrap.com/docs/4.3/examples/navbar-fixed/"> <!-- Bootstrap core CSS --> <link href="https://getbootstrap.com/docs/4.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <style> .bd-placeholder-img { font-size: 1.125rem; text-anchor: middle; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } @media (min-width: 768px) { .bd-placeholder-img-lg { font-size: 3.5rem; } } .container{ font-family: Arial; margin: 5px 5px 30px 5px; padding: 0; color: white; text-align: center; background: #555652; color: #E8E9EB; background: #222; border: #555652 1px solid; padding: 10px; } </style> <!-- Custom styles for this template --> <link href="css/navbar-top-fixed.css" rel="stylesheet"> </head> <body> <!--Inicio da NavBar--> <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark"> <a class="navbar-brand" href="#"><?php echo $title; ?></a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarCollapse"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="../plataforma">Home<span class="sr-only">(current)</span></a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> VIAGENS </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="../sistema/viagem01.php">1ª Viagem</a> <a class="dropdown-item" href="../sistema/viagem02.php">2ª Viagem</a> <a class="dropdown-item" href="../sistema/viagem03.php">3ª Viagem</a> <a class="dropdown-item" href="../sistema/viagem04.php">4ª Viagem</a> <a class="dropdown-item" href="../sistema/viagem05.php">5ª Viagem</a> <a class="dropdown-item" href="../sistema/viagem06.php">6ª Viagem</a> <a class="dropdown-item" href="../sistema/viagem07.php">7ª Viagem</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="../sistema/encerramento.php">Fechamento</a> </div> </li> </ul> </div> </nav> <!--Fim da NavBar--> <main role="main" class="col-md-12 ml-sm-auto col-lg-12 px-4"> <h4>Bem Vindo, <b><?php echo $_SESSION['nome']; ?></b>.</h4> <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom"> <h1 class="h2">Dashboard</h1> <div class="btn-toolbar mb-2 mb-md-0"> <button class="btn btn-sm btn-outline-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span data-feather="calendar"></span> Hoje </button> <div class="dropdown-menu"> <a class="dropdown-item" href="#">Mês Atual</a> </div> </div> </div> <div class="container"> <h1><?php echo $title; ?></h1> <canvas id="chart" style="width: 80%; height: 50vh; background: #222; border: 1px solid #555652; margin-top: 10px;"></canvas> <script> var ctx = document.getElementById("chart").getContext('2d'); var myChart = new Chart(ctx, { type: 'line', data: { labels: ["1ª","2ª","3ª","4ª","5ª","6ª","7ª"], datasets: [{ label: 'Receita', data: [<?php echo $data1; ?>], backgroundColor: 'transparent', borderColor:'rgba(46, 204, 113,1.0)', borderWidth: 3 }, { label: 'Gastos', data: [<?php echo $data2; ?>], backgroundColor: 'transparent', borderColor:'rgba(235, 47, 6,1.0)', borderWidth: 3 }] }, options: { scales: {scales:{yAxes: [{beginAtZero: false}], xAxes: [{autoskip: true, maxTicketsLimit: 20}]}}, tooltips:{mode: 'index'}, legend:{display: true, position: 'top', labels: {fontColor: 'rgb(255, 255, 255)', fontSize: 16}} } }); </script> </div> <h2>HOJE</h2> <div class="table-responsive"> <table id="valores" class="table table-striped table-sm display"> <thead> <tr align="center"> <th>ID</th> <th>Data</th> <th>Hora</th> <th>Viagem</th> <th>Valor</th> <th>Gastos</th> <th>Usuário</th> </tr> </thead> <tbody> <?php while ($rows_viagens = mysqli_fetch_assoc($resultado_viagem)) { ?> <tr align="center"> <td><?php echo $rows_viagens['viagem_ID']; ?></td> <td><?php echo date('d/m/Y', strtotime($rows_viagens['viagem_data'])); ?></td> <td><?php echo $rows_viagens['viagem_hora']; ?></td> <td><?php echo $rows_viagens['viagem_nr']; ?></td> <td><?php echo $rows_viagens['viagem_valor']; ?></td> <td><?php echo $rows_viagens['viagem_gastos']; ?></td> <td><?php echo $rows_viagens['viagem_usuario']; ?></td> </tr> <?php } ?> </tbody> </table> </div> </main> </div> </div> <!-- JavaScript do Bootstrap --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script>window.jQuery || document.write('<script src="https://getbootstrap.com/docs/4.3/assets/js/vendor/jquery-slim.min.js"><\/script>')</script> <script src="https://getbootstrap.com.br/docs/4.1/assets/js/vendor/popper.min.js"></script> <script src="https://getbootstrap.com.br/docs/4.1/dist/js/bootstrap.min.js"></script> <script src="https://getbootstrap.com/docs/4.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" crossorigin="anonymous"></script> <!-- Ícones --> <script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script> <script> feather.replace() </script> <!-- Gráficos --> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"></script> </body> </html>  
      Porém os mesmo são atualizados automaticamente, eu necessito puxar do BD, todos os dados cadastrados no mês de julho como exemplo, e esse relatório pode ser no formato de uma tabela simples, mas que ele quando gerado fique salvo na plataforma para consultas futuras e não seja alterado.
       
       
       
    • By infonet
      Olá pessoal,
      Poderiam me ajudar?
      Preciso enviar o formulário via ajax, porém preciso pegar todos os valor de todos os inputs e excluir o valor de cada linha em três tabela.
      Pode ser que alguma tabela não tenha nenhum valor, mas tem tabela que pode ter 10 valores.
       
      Tentei fazer como estou enviando, mas não consegui...
      Obrigado!
       

      <form name='formResiduo'> <?php $sqlr_end = "SELECT e.idclie FROM tb_end e WHERE NOT EXISTS(SELECT i.idinc FROM tb_inc i WHERE e.idclie = i.idinc) ORDER BY e.idclie ASC"; $querye = $conn->query($sqlr_end); $linhas = $querye->num_rows; while($rowrend = $querye->fetch_assoc()) { $reidclie = $rowrend["idclie"]; if ($linhas == "0") { $linhase = ""; } else { $linhase = $linhas; } ?> <input type='text' name='valor[]' value='<?php echo $reidclie; ?>'> <?php } ?> <?php if ($linhase) { ?> <div class='emCursorD emBlkA' style='position:relative;font-size:14px;font-weight:300;'> <div style='position:absolute;width:calc(100% + 100px);height:100%;left:-10px;'></div> <div class='formImptG' style='border-radius:3px;padding:5px;margin-bottom:20px;'> <label> <div style='position:relative;border-bottom:1px solid #606060;padding-top:10px;margint-top:5px;'><?php echo $linhase; ?></div> </label> </div> </div> <?php } ?> <?php $sqlr_res = "SELECT r.idclir FROM tb_res r WHERE NOT EXISTS(SELECT i.idinc FROM tb_inc i WHERE r.idclir = i.idinc) ORDER BY r.idclir ASC"; $queryr = $conn->query($sqlr_res); $linhas = $queryr->num_rows; while($rowrres = $queryr->fetch_assoc()) { $rridclir = $rowrres["idclir"]; if ($linhas == "0") { $linhasr = ""; } else { $linhasr = $linhas; } ?> <input type='text' name='valor[]' value='<?php echo $rridclir; ?>'> <?php } ?> <?php if ($linhasr) { ?> <div class='emCursorD emBlkA' style='position:relative;font-size:14px;font-weight:300;'> <div style='position:absolute;width:calc(100% + 100px);height:100%;left:-10px;'></div> <div class='formImptG' style='border-radius:3px;padding:5px;margin-bottom:20px;'> <label> <div style='position:relative;border-bottom:1px solid #606060;padding-top:10px;margint-top:5px;'><?php echo $linhasr; ?></div> </label> </div> </div> <?php } ?> <?php $sqlr_his = "SELECT h.idclih FROM tb_his h WHERE NOT EXISTS(SELECT i.idinc FROM tb_inc i WHERE h.idclih = i.idinc) ORDER BY h.idclih ASC"; $queryh = $conn->query($sqlr_his); $linhas = $queryh->num_rows; while($rowrhis = $queryh->fetch_assoc()) { $rhidclih = $rowrres["idclih"]; if ($linhas == "0") { $linhash = ""; } else { $linhash = $linhas; } ?> <input type='text' name='valor[]' value='<?php echo $rhidclih; ?>'> <?php } ?> <?php if ($linhash) { ?> <div class='emCursorD emBlkA' style='position:relative;font-size:14px;font-weight:300;'> <div style='position:absolute;width:calc(100% + 100px);height:100%;left:-10px;'></div> <div class='formImptG' style='border-radius:3px;padding:5px;margin-bottom:20px;'> <label> <div style='position:relative;border-bottom:1px solid #606060;padding-top:10px;margint-top:5px;'><?php echo $linhash; ?></div> </label> </div> </div> <?php } ?> </form> <div class='passar emLineB emCursorP'>Passar</div> <script> $(document).ready(function() { $('.passar').click(function(passar) {     var formdata = new FormData($("form[name='formResiduo']")[0]);     var link = 'sys/incClient.php?teste=ex';      $.ajax({         dataType: 'json',         type: 'POST',         url: link,         data: formdata,         processData: false,         contentType: false,     success: function (result) {         var data = result.split('|');         var rA = data[0];         var rB = data[1];     if(rA == "sucesso") {     alert(rB);     }      return false;     }     }); }); }); </script>
       

      if($_GET['teste']=="ex") {     foreach($_POST['valor'] AS $lines) {          $sqlr = @mysqli_query($conn, "DELETE FROM tb_res WHERE idclir = '$lines'");     $sqle = @mysqli_query($conn, "DELETE FROM tb_end WHERE idclie = '$lines'");     $sqlh = @mysqli_query($conn, "DELETE FROM tb_his WHERE idclih = '$lines'");     }          $arrch = "sucesso"."|".$lines;     echo json_encode($arrch);     exit; }
    • By infonet
      Poderiam me ajudar com esta consulta SQL?   Acontece que ela roda normal, mas quando coloco na paginação ela não funciona:   mysqli_query ($conn, "SET @a := 0"); $_pagi_sql = "SELECT *, LPAD( @a := @a + 1, 5, '0' ) 'sequencial' FROM tb_his WHERE idclih = $idclientHis ORDER BY dt_his DESC, idhis DESC, sequencial DESC";   O erro acontece somente por causa do final: sequencial DESC, pois quando eu retiro, funciona normalmente.   Obrigado!
    • By Eurales antony
      Boa noite developers, eu codei um sistema em PHP mas não para ser vendido e sim alugado, o cliente aluga eu envio os arquivos do sistema e uma chave e apenas com uma chave valida o sistema funciona, o sistema está pronto terminei de coda o ofuscador e um contaminador(insere códigos deanecesaarios no código) mas agora eu preciso criptografar todos os arquivos, tipo base_64 ou melhor, com o ofuscador e contaminador o código fonte está totalmente ilegível mas quero que fique igual a um código que eu vi, um monte de caracteres nada vê com nada não sei se era base 64 na verdade não entendo muito sobre criptografia quem puder me ajudar eu agradeço e quem chegou até aqui agrade pelo atenção, boa noite 
×

Important Information

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