Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida Em Tabela, Cadastro, Consulta


Yakult

Pergunta

Olá,

Eu não tenho experiência com programação e estou perdido aqui.

Tenho duas tabelas, uma de pessoas e outra de atividades.

Na tabela pessoa, além dos dados dela, tenho um campo id_atividade, onde eu relacionava essa pessoa à uma atividade. Assim funciona bem tanto o cadastro quanto a consulta.

O problema é que agora preciso cadastrar mais de uma atividade para a pessoa e não tenho idéia de como fazer isso, nem sei como arrumar as tabelas, nem como cadastrar e fazer a consulta.

Alguém poderia me dar uma luz?

Valeu!

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Hmm... é, indefinido complica um pouco.

Nesse caso acho que você vai ter que ter uma 3ª tabela, onde cada linha (entrada) nela vai ser 1 atividade de 1 pessoa.

Se a pessoa tiver 2 atividades, vai ter 2 linhas com o id da pessoa.

Algo como:

|-USER_ID-|-ACTIVITY_ID-|
|---------|-------------|
|----1----|------20-----|
|----5----|------1------|
|----9----|------6------|
|----13---|------1------|
|----13---|------3------|
|----3----|------17-----|
|----4----|------10-----|
|---------|-------------|

Capisce? happy.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, tu ten um id atividades, se tu criares um id para clientes tb, tu podes colcoar em uma tabela o id cliente com o id atividades. saca?

Digamos que tu tenhas na base de dados os seguintes dados:

tabela clientes

id_cliente=0 nome_cli=pedro

id_cliente=1 nome_cli=juca

id_cliente=2 nome_cli=jucatesca

...

tabela atividades

id_atividades=0 rotulo_ati=natação

id_atividades=1 rotulo_ati=fittnes

id_atividades=2 rotulo_ati=levantamento de prato

...

tabela relacionada

id_cliente=1 id_atividades=2 //juca faz levantamento de prato

id_cliente=0 id_atividades=2 //pedro também faz levantamento de prato

id_cliente=1 id_atividades=0 //juca faz natação

...

acho q assim dá

Link para o comentário
Compartilhar em outros sites

  • 0

Seguinte, quando você insere a user_id, que é auto_increment eu suponho, você pode pegar esse Nº que foi gerado automaticamente.

Então, sabendo esse nº de id, você faz a inserção na outra tabela smile.gif

A função é: · http://br.php.net/function.mysql-insert-id

Pra exibir você vai ter que fazer uma Query que busca dados em 2 tabelas.

Poste lá em MySQL que o Gladiador vai te ajudar com a parte da exibição smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Esse mysql_insert_id é muito útil mesmo, ta ficando legal! Obrigado Error404 e lemissel!

Agora outra dúvida apareceu. Tenho esse select pra escolher as atividades:

<SELECT NAME="atividade[]" size="10" multiple input >
<?php
mysql_connect("localhost","","");
mysql_select_db("teste");
$query = "SELECT * FROM atividade ORDER BY nome_atividade";
$result = mysql_query($query);
while($atividades = mysql_fetch_array($result))
{
print("<OPTION VALUE=\"$atividades[0]\">$atividades[1]</option>");
}
?>
</SELECT>

Só que ele me retorna um array assim: Array ( [0] => 3 [1] => 2 [2] => 1 ) e insere no banco apenas o primeiro valor e ainda assim, errado. Ele insere '0' ao invés de '3', que seria o id_atividade.

Queria saber o que eu posso fazer e como gravar todos os valores do array no banco e não apenas o primeiro.

Obrigado novamente!

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, cara, pra começo de conversa, quando você estiver chamando uma variável que veio de um formulário de método POST, use $_POST['variavel'] e não $variavel. Se você não sabe o porque, dá uma olhada no manual de PHP, na parte de "Usando o Register Global".

Então, essa variável da select é uma array, cada elemento da array equivale a uma opção que a pessoa escolheu.

Você vai ter que montar um loop para ir passando de elemento em elemento e inserindo na tabela de atividades.

Entendeu?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,4k
    • Posts
      652,2k
×
×
  • Criar Novo...