Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou criando um sistema de newsletter e estou na parte da 'administração'.
Está salvando no sistema na tabela NEWSLETTER assim:
ID - EMAIL.
ex:
1 - emailteste@uol.com.br
2 - testar@hotmail.com
e assim por diante.
Como faço para listar em um campo os emails separados por virgulas?
Ex: emailteste@uol.com.br, testar@hotmail.com (sempre em sequencia... id 1, id 2, e assim por diante)
valeu!
Não Rafael... rs.
Quero listar diretamente do MYSQL pro php, entendeu? :P
procura por "CONCAT"
mais acho que nó fórum de banco de dados irão te falar melhor
vou dá uma pesquisada. obrigado!
Isto ?
C:\>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create schema mails ;
Query OK, 1 row affected (0.03 sec)
mysql> use mails ;
Database changed
mysql> create table mails (
-> mid smallint ( 6 ) not null primary key auto_increment ,
-> mail varchar ( 92 ) not null
-> ) ;mysql> insert into mails ( mail ) values ( 'mail1@hotmail.com' ) , ( 'bla@gmail.com' ) , ( 'email@hotmail.com' ) ;
Query OK, 3 rows affected (0.03 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from mails ;
+-----+-------------------+
| mid | mail |
+-----+-------------------+
| 1 | mail1@hotmail.com |
| 2 | bla@gmail.com |
| 3 | email@hotmail.com |
+-----+-------------------+
3 rows in set (0.00 sec)
mysql> select group_concat( mail ) from mails ;
+---------------------------------------------------+
| group_concat( mail ) |
+---------------------------------------------------+
| mail1@hotmail.com,bla@gmail.com,email@hotmail.com |
+---------------------------------------------------+
1 row in set (0.00 sec)
mysql>
Exatamente isto.
Porém não estou conseguindo executar tal função :(
Edit:
$re = mysql_query("SELECT GROUP_CONCAT( email ORDER BY id ASC SEPARATOR ', ' ) FROM newsletter");
e
<?php
while($l = mysql_fetch_array($re)) {
echo "<tr><td>$re</td></tr>";
}
@mysql_close();
?>
Está retornando: Resource id #7
Preste atenção no código que você fez, o que você está tentando imprimir ; $re contém uma resource e não os resultados que você espera, logo você atribuiu eles pra $l, então ... é coisa simples de resolver:
<?php
// ...
while ( $l = mysql_fetch_array ( $re ) ) {
echo '<tr><td> ' , $l [ 0 ] , ' </td></tr>'
}
// ...Perfeito!!!
Obrigado novamente, Andrey.
Abraço!!!
RESOLVIVO.