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 egalauber
      Preciso descobrir qual é o nome do arquivo com a extensão.
      Só sei o início do nome:
       
      pasta "anexos".
      nome_do_arquivo_DAQUI_PRA_FRENTE_NAO_SEI_O_RESTO_DO_NOME_NEM_A_EXTENSAO
       
      Com a função glob eu consigo achar o arquivo, mas o nome completo ainda não.
       
       
      $verifica = glob("anexos/nome_do_arquivo_*");
      if($verifica == true){
         // achei o arquivo e agora preciso pegar o nome completo e a extensão
      } else {
            echo "Arquivo não encontrado";
         }
    • By kelvinferraz
      Bom dia Pessoal,
       
      Estou com um problema que talvez muitos já devem ter passado, eu criei um FormRequest de um cadastro que fiz para validar os campos de anexo que vai para o BD. Incluindo a seguinte regra do name anexo_rg
        return [ 
                 'anexo_rg'           => 'mimes:jpeg,png,jpg,pdf|max:2048', 
              ];
       
      O campo não é required, porém ele fica pedindo para inserir um arquivo do tipo que foi criado na regra, ou seja, ele esta forçando um required no anexo, como consigo ignorar quando não possuir anexo?

      OBs: Eu criei um campo hidden para enviar um texto "NÃO POSSUI ANEXO". Antes de eu criar esse FormRequest ele conseguia deixar o anexo vazio, porém não tinha regras e a pessoa conseguia anexar qualquer tipo de arquivo.
       
    • By Vibraphera
      Oi gente eu recentemente comecei a aprender php e fui atras de desafios legais e me deparei com um que até hoje não consigo resolver.
      Preciso mostrar a maior e a menor palavra de uma frase ou texto. Eu tentei transformar em um array mas não sei se seria o adequado.
      Resumindo apenas me retorna corretamente a maior palavra mas a menor não me retorna nada. ALGUÉM ME DA UM HELP kk
      OBS: quando não tem ponto final parece que não retorna nada e quando tem ponto final ele retorna o 'ou' da frase mas não deveria retornar a letra 'é' ou a letra 'a'?
       
      <?php
      $texto = 'Como faço para saber qual é a menor e a maior de uma frase ou grandes textos';
      $arr = explode(" ", $texto);
      $maior="";
      $menor="";
      for ($i=0; $i <count($arr) ; $i++) { 
          $atual = $arr[$i];
          if (strlen($atual) > strlen($maior)) {
              $maior = $atual;
          } else if (strlen($atual) < strlen($maior)) {
              $menor = $atual;
          }
      }
      echo "<br>";
      echo $maior;
      echo "<br>";
      echo $menor;
    • By danteblatt
      Olá Srs,
      Não tenho muito conhecimento em PHP e estou com um formulário onde o usuário tem alguns campos para preencher e gravar no banco de dados SQL, sendo que um campo deste form será dinâmico onde o usuário poderá adicionar quantos campos forem necessários a partir de um botão "+".
      Nome do campo dinâmico: chavenf
      Segue abaixo o código do formulário:
      <form method="POST" action="../includes/mf-processa.php"> <div class="form-group"> <div class="form-row"> <div class="form-group col-md-4"> <input type="hidden" name="usuario[]" value="<?php echo $_SESSION['usuarioNome']; ?>" /> <select class="form-control" id="tipo" name="tipo[]"> <option selected>Tipo</option> <option>1</option> <option>2</option> </select> </div> <div class="form-group col-md-4"> <select class="form-control" id="prioridade" name="prioridade[]"> <option selected>Prioridade</option> <option>Alta</option> <option>Padrão</option> </select> </div> <div class="form-group col-md-4"> <input class="form-control" type="text" name="fornecedor[]" placeholder="Fornecedor" id="fornecedor"> </div> </div> <div style="display:none;" class="form-row" id="chavecte"> <div class="form-group col-md-12"> <label>Chave </label> <input class="form-control" type="text" name="chavecte[]"> </div> </div> <div class="form-row" id="row-nota"> <div class="form-group col-md-12"> <label>Chave da NF </label> <input class="form-control" type="text" name="chavenf[]" id="chavenf"> </div> </div> <div style="display:none;" class="form-row" id="add-field-nf"> <div class="form-group col-md-2"> <button type="button" class="btn btn-primary" id="add"> + </button> </div> </div> <div class="form-row"> <div class="form-group col-md-2"> <input type="submit" class="btn btn-primary" value="Cadastrar"> </div> </div> </div> </form> <script> $( "#add" ).click(function() { $( "#row-nota" ).append('<div class="form-group col-md-12"><input class="form-control" type="text" name="chavenf[]" id="chavenf"></div>'); }); </script> Abaixo o arquivo que conecta e insere no BD, "mf-processa.php"
      <?php session_start(); include_once("conexao.php"); $prioridade = filter_input(INPUT_POST, 'prioridade', FILTER_SANITIZE_STRING); $usuarioentrada = filter_input(INPUT_POST, 'usuario', FILTER_SANITIZE_STRING); $tipofrete = filter_input(INPUT_POST, 'tipofrete', FILTER_SANITIZE_STRING); $fornecedor = filter_input(INPUT_POST, 'fornecedor', FILTER_SANITIZE_STRING); $chavenf = preg_replace("/\s+/", "", filter_input(INPUT_POST, 'chavenf', FILTER_SANITIZE_STRING)); $chavecte = preg_replace("/\s+/", "", filter_input(INPUT_POST, 'chavecte', FILTER_SANITIZE_STRING)); $nNF = substr($chavenf, 25, 9); $timenow = date('d-m-Y'); $timenow .= ' '.date('H:i:s'); $qtnotas = count($chavenf)-1; for ($f = 0; $f <= $qtnotas; $f++) { $sql = "INSERT INTO base (data, usuarioentrada, prioridade, tipofrete, nf, fornecedor, chavenf, chavecte, acao, dataretorno, usuariofiscal) VALUES ( '.$timenow[$f].', '.$usuarioentrada[$f].', '.$prioridade[$f].', '.$tipofrete[$f].', '.$nNF[$f].', '.$fornecedor[$f].', '.$chavenf[$f].', '.$chavecte[$f].', '', '', '' )" or die ("<center>Erro: " . mysqli_error() . "</center>"); $insert = mysqli_query($conn, $sql); if(mysqli_insert_id($conn)){ $_SESSION['msgrec'] = "<p style='color:green;'>Nota cadastrada com sucesso!</p>"; header("Location: ../recebimento/recebimento.php"); }else{ $_SESSION['msgrec'] = "<p style='color:red;'>Nota não cadastrada com sucesso!</p>"; header("Location: ../recebimento/recebimento.php"); }  
       
      Veja o erro retornado na página.. Já tentei alterar o código e mesmo assim não consegui efetuar a inserção dos dados no BD.
       
      ( ! ) Warning: count(): Parameter must be an array or an object that implements Countable in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 31 Call Stack # Time Memory Function Location 1 0.0001 411528 {main}( ) ...\mf-processarecebimento.php:0  
      ( ! ) Notice: Uninitialized string offset: 0 in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 41 Call Stack # Time Memory Function Location 1 0.0001 411528 {main}( ) ...\mf-processarecebimento.php:0  
      ( ! ) Notice: Uninitialized string offset: 0 in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 42 Call Stack # Time Memory Function Location 1 0.0001 411528 {main}( ) ...\mf-processarecebimento.php:0
    • By lordstarlight
      Olá, 
       
      Como posso bloquear todos ips, menos o meu para acesso ao meu site?
      preciso fazer isto para poder fazer manutenção.
       
      obrigado!
×

Important Information

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