Jump to content


Photo

Guardar Mais De Um Valor Na Mesma Coluna.


  • Faça o login para participar
6 replies to this topic

#1 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 03/07/2007, 17:27

Olá!
Gostaria de saber como faço para por exemplo, um usuário adiciona tal artigo aos favoritos, por ID por exemplo do artigo. mas tenho a coluna FAVORITOS por exemplo (campo favoritos) mas como faz pra ele adicionar mais de um favoritos?
E se for por exemplo assim: ID1,ID2,ID3 .... eu pego esses valores e dou explode no PHP correto?

Mas minha dúvida é como fazer para adicionar aos favoritos tal valor, e depois ele adiciona outro, e como ficaria esses valores no mesmo campo?
Obrigado :)
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#2 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 03/07/2007, 19:17

Bem deixa eu ver se eu entendi bem sua dúvida, vc quer saber como gravar um ID por exemplo no mesmo campo, só que gostaria de ir gravado em sequência em forma de texto sem apagar os demais dados é isso??

Se sim o jeito mais façil era pegar os dados atuaais (com PHP como vc mesmo diz) e depois atualizar com o novo id ... ou seja junta o valor atual com o novo ID ... tipo assim:
UPDATE `tabela` SET `Favoritos`='" . $dados["Favoritos"] . "," . $_GET["ID"] . "' WHERE `User`='1' LIMIT 1 ;

Caso queria usar somente o MySQL para fazer esse trabalho vc pode usar a função "CONCAT" para juntar o valor atual da coluna com um novo valor, porém talvez terá que trabalhar um pouco os valores grvados da hora de usar o "explode":
UPDATE `tabela` SET `Favoritos`=CONCAT(`Favoritos`, '," . $_GET["ID"] . "') WHERE `User`='1' LIMIT 1 ;

Acho que é isso pelo que entendi ... <_<

#3 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 03/07/2007, 19:24

O ideal seria você inserir uma nova linha numa tabela com o id do usuário e do artigo.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#4 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 03/07/2007, 22:11

Bem deixa eu ver se eu entendi bem sua dúvida, vc quer saber como gravar um ID por exemplo no mesmo campo, só que gostaria de ir gravado em sequência em forma de texto sem apagar os demais dados é isso??

Se sim o jeito mais façil era pegar os dados atuaais (com PHP como vc mesmo diz) e depois atualizar com o novo id ... ou seja junta o valor atual com o novo ID ... tipo assim:

UPDATE `tabela` SET `Favoritos`='" . $dados["Favoritos"] . "," . $_GET["ID"] . "' WHERE `User`='1' LIMIT 1  ;

Caso queria usar somente o MySQL para fazer esse trabalho vc pode usar a função "CONCAT" para juntar o valor atual da coluna com um novo valor, porém talvez terá que trabalhar um pouco os valores grvados da hora de usar o "explode":
UPDATE `tabela` SET `Favoritos`=CONCAT(`Favoritos`, '," . $_GET["ID"] . "') WHERE `User`='1' LIMIT 1  ;

Acho que é isso pelo que entendi ... <_<

Obrigado ai ajudou muito mesmo. :)

O ideal seria você inserir uma nova linha numa tabela com o id do usuário e do artigo.

Obrigado também, ajudou muito também. :)
Mas como faço para ele criar esta linha com a ID do usuario, inserir depois junto axo que deu pra captar a idéia, mas essa ID eu pegarei na sessão do usuário por exemplo? :)
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#5 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 03/07/2007, 23:06

No caso é so criar uma tabela a mais chamada "favoritos" por exemplo com 2 colunas Usuario | Artigo ... dai invez de atualizar os dados vc insere um novo registro ....

Assim em vez de fazer isso:
UPDATE .... WHERE `User`='1' ...;

Vc insere o uma nova linha com o numero que seria usado no "`User`='1'":
INSERT INTO `tabela` (`Usuario`, `Artigo`) VALUES ('1', '10');

Onde o número "1" seria o número do usuário que viria atraves se Sessão como vc cito, querystring, formulário, ai vc escolheria o modo de receber esse valor ... depois é so selecionar os Artigos de acordo com o Usuário:
SELECT * FROM `tabela` WHERE `Usuario`='1' ORDER BY `Artigo` ASC;

Básicamente é isso ...

Obrigado também, ajudou muito também. :)
Mas como faço para ele criar esta linha com a ID do usuario, inserir depois junto axo que deu pra captar a idéia, mas essa ID eu pegarei na sessão do usuário por exemplo? :)


Edição feita por: sk15, 03/07/2007, 23:07.


#6 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 04/07/2007, 15:03

Vlwww. :)
Vou depois tentar sobre isso mas como eu entendi a lógica do que vocês mostraram acho que da pra mim fazer sem problemas, abraços! :)

EDIT.:

Tenho uma grande dúvida...
Tipo vamos supor que eu inseri os dados e tudo mais, esta tabela favoritos e tem outra tabela com artigos que neles tem o ID de cada normalmente.

Mas para eu mostrar esses favoritos como faço para selecionar a tabela favoritos, pegar esses ID do usuário e depois pegar dados do ID do favoritos e com esse ID pegar dados do artigo na tabela artigos?
Tipo consultar duas tabelas no caso... :)
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#7 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 09/07/2007, 08:20

Estude os tipos de joins, aí vão umas referências:
http://www.devmedia....p.asp?comp=2507
http://www.devmedia....p.asp?comp=2524
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq