Retornando consulta no MySQL com dados separados por vírgula ou outro caractere

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Prefácio

Me desculpem… Mas eu tive que escrever sobre isso…
Esta semana eu estive num mato sem cachorro… Precisava retornar todos os dados de uma tabela em um único campo. Antes de dizer que eu realmente sabia programar em PHP, eu costumava fazer isso puxando todos os dados e juntando eles via foreach, no começo e, posteriormente, implode. Hoje não mais… Descobri algo que mudou minha vida…
Uma função do MySQL chamada GROUP_CONCAT().

Mão na massa

Utilizando esta função podemos separar qualquer tipo de dado utilizando qualquer caractere.

Digamos que temos uma tabela chamada categorias e desejamos consultar todos os nomes de categorias. Para tanto, utilizaremos o seguinte snippet SQL:

[sql]SELECT GROUP_CONCAT( nome ORDER BY nome ASC SEPARATOR ‘,’ ) AS todas_categorias FROM categorias[/sql]

Tá… Mas e como funciona?

Ao chamar o GROUP_CONCAT() nós colocamos uma pseudo-subconsulta indicando qual campo (deve ser apenas um) que será coletado. Depois ao indicar o SEPARATOR, especificamos qual será o separador dos dados retornados. Por fim, renomeamos o campo para todas_categorias e este será o resultado obtido. :)

Conclusão

Mais simples que dar print! :P

Vou aproveitar a conclusão que não tem muito o que concluir e vou falar que o layout novo está quase pronto!
Finalmente tive avanços e o CSS está pronto! Agora estou finalizando o HTML e as consultas!

Valeu a todos que estão me apoiando e visitem o Aprenda PHP

Abraços e fiquem com Deus!