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 lezão
      Boa noite!
      Estou tentando fazer um codigo de horario de atendimento, e naun estou tendo resultados.
      Alguem pode me ajudar :
      <?php if ($hoje = 3 & $hoje < 5 & $hora >= 0 & $hora < 08){ echo "<font face='verdana', arial' size=2 color='red'>Fechado</font>";} else if ($hoje > 3 & $hoje < 5 & $hora >= 08 & $hora < 18){ echo "<font face='verdana', arial' size=2 color='red'>Fechado</font>";} else if ($hoje = 3 & $hora >= 18 & $hora < 23){ echo "<font face='verdana', arial' size=2 color='green'>Aberto</font>";} ?>  
    • By AndersonWS
      Meu site está caindo muito nos últimos dias. Basicamente acessa e não aparece nada, uma tela em branco. O pessoal da hospedagem falou que tenho que otimizar o banco de dados e que o problema é esse. Acho estranho pois o mesmo site não caia e agora "do nada" tem esse problema. Fiz um teste de tracert no cmd para ver as rotas e deu a mensagem: Esgotado o tempo limite do pedido. Isso me parece o problema e não o banco de dados.
      Otimização do banco tem alguma coisa a ver com essa mensagem?
      Poderia o site por não estar muito otimizado simplesmente não mostrar nada na tela? Não deveria carregar ao menos o html?
      Se não for o local certo da pergunta me perdoem mas como falaram que o problema era o banco de dados postei aqui.
      Grato.
    • By manolegal
      Olá amigos(as) do Fórum.
      Tenho um número inteiro no PHP e preciso inseri-lo no Postgresql com 02 casas decimais.
      Defini o campo no Postgresql do tipo numeric(14,2)
      O valor está assim no PHP:
      2961966 Preciso gravar no BD da seguinte maneira:
      29619.66 Porém está gravando da seguinte forma:
      2961966.00 Tentei utilizando number_format, porém não consegui:
      $numero_bd = number_format($numero, '.', ''); $numero_bd = number_format($numero,2,"."); $numero_bd = number_format($numero,2,","numerovalor_ref_15,2,",","."); Caso alguém possa me ajudar, desde já agradeço.
    • By Felper
      Criei um sistema de login com php e mysql mas não consigo realizar o login mesmo tendo certeza de que os dados foram cadastrados com sucesso. Não sei o que fiz de errado. Vejam o código:
      <?php $login2 = $_POST['loginlogar']; $senha2 = $_POST['senhalogar']; $link = mysqli_connect("localhost", "root", "", "bancolanche") or die("<h1>Não foi possível conectar!!</h1>". mysqli_error()); $banco = mysqli_select_db($link, "bancolanche") or die("<h1>Não foi possível abrir banco de dados!!</h1>". mysqli_error()); $sql = "SELECT login, senha FROM users"; $resulta = mysqli_query($link, $sql); while ($book = $resulta->fetch_object()) { $logindb = $book->login; $senhadb = $book->senha; } if($login2 == "" || $senha2 == ""){ $_SESSION['msg'] = "<h1 style='color:red'>Erro ao logar! Há campos de preenchimento obrigatório em branco.</h1>"; header("Location: logar.php"); } else { if($logindb==$login2 && $senhadb==$senha2){ $_SESSION['msg'] = "<h1 style='color:green'>Logoff realizado com sucesso!</h1>"; header("Location: index.html"); } else { $_SESSION['msg'] = "<h1 style='color:red'>Erro ao logar! Usuário inexistente ou senha incorreta.</h1>"; header("Location: logar.php"); } } mysqli_close($link); ?>  
×

Important Information

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