Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
No meu banco de dados tenho a tabela 'ativo', nesta, encontra-se o campo 'id_visitado'.
Quero saber como fazer um update neste campo separando os valores por vírgula, por exemplo: 2,5,34,100,120,132, ou seja quero saber como inserir um novo id neste campo sem alterar os que já estão salvos nele. Então supomos que eu já tenha 2,56,35,788 no campo, como inserir o id 55, por exemplo, ficando desta forma 2,56,35,788,55 ?
E outra coisa, como fazer um select para recuperar esses ids? pois quero que um select que puxe eles como se fossem de outro campo, para por exemplo, fazer uma comparação.
Exemplo, supomos que eu faça um select que verifique se o id 35 ou 55 existe no campo, como eu faria isso?
Agradeço quem puder me ajudar.
Por favor, cole a estrutura da tabela.
Pelo que entendo você vai armazenar o id de alguma coisa num campo texto, há outras formas de fazer esta consulta, vamos tentar lhe ajudar.
Caso queira uma palhinha, pesquise sobre:
Desculpa a demora pessoal,
@Progjunior,
Sim é em apenas um registro, se for fazer em vários registros, vai ficar muito pesado, pois serão feitos milhares por dia.
@lokaodomau,
Consegui fazer aqui, só que agora tem um problema, os registros que não era para ele pegar, ele pega mesmo assim, então a função NOT IN não está funcionando.
Nesse exemplo ai, a variavel $clics que contem os dados do banco, está assim: 1,4,6,78,45,23,56,32.
Ou seja, era pra selecionar outro registro menos os que tem esses ids, mais não funciona.
/ script que pega os blogs clicados /
$pega_clicados = mysql_query("SELECT GROUP_CONCAT(blog_visto) As vistos_b FROM ativo WHERE login = '$sulogin' AND id_cadastro = '$suid'") or die(mysql_error()); $clics = $bg["vistos_b"];
}
/ script que pega um blog aleatoriamente, pega somente se o mesmo tiver créditos e estiver aprovado e se não estiver na lista de clicados /
$pega_blog= mysql_query("SELECT creditos,url_blog,frame_larg,frame_alt,id_cadastro,nome_blog FROM `ativo` WHERE creditos>='1' AND status_blog='2' AND id_cadastro NOT IN ('$clics') ORDER BY RAND() LIMIT 1") or die(mysql_error()); $creditos = $b["creditos"];
$url_blog = $b["url_blog"];
$frame_larg = $b["frame_larg"];
$frame_alt = $b["frame_alt"];
$id_b = $b["id_cadastro"];
$nome_blog = $b["nome_blog"];
}
/ script que atualiza os blogs clicados /
$query = mysql_query("UPDATE ativo SET blog_visto='$clics,$id_b' WHERE login = '$sulogin' AND id_cadastro = '$suid'") or die(mysql_error());
Agradeço quem me ajudar
http://pt.wikipedia.org/wiki/Normaliza%C3%A7%C3%A3o_de_dados
Normalize a tabela, não complique as coisas.
Numa tabela normalizada não existiria seu "problema".
Ok Motta. Irei ver o conteúdo da página
Obrigado
É somente um registro?
Porque se for é melhor fazer vários registros.
Mas se for vários registros vai ficar pesado para consultar.