Foros del Web » Programando para Internet » PHP »

Concatenar los datos de una consulta Mysql

Estas en el tema de Concatenar los datos de una consulta Mysql en el foro de PHP en Foros del Web. Hola, Necesito sacar unos correos electronicos de una base de datos mysql de tipo: [email protected], [email protected], [email protected] Es decir con coma y espacio y sin ...
  #1 (permalink)  
Antiguo 09/12/2010, 03:23
 
Fecha de Ingreso: octubre-2010
Mensajes: 4
Antigüedad: 14 años
Puntos: 0
Concatenar los datos de una consulta Mysql

Hola,
Necesito sacar unos correos electronicos de una base de datos mysql de tipo:
[email protected], [email protected], [email protected]
Es decir con coma y espacio y sin nada al final.
Utilizo la siguiente consulta:

$sql = mysql_query("SELECT email FROM usuarios WHERE id = '$id1'" , $link);

$resultados = array();
while($row = mysql_fetch_array($sql)) {
$resultados[] = $row[0];
}

foreach ($resultados as $key => $value) {
if ($value == NULL) { unset($resultados[$key]); }
}

$data = implode(", ", $resultados);

echo $data;

Lo que consigo es: [email protected]@email1.com donde las dos cuentas responden corectamente a WHERE pero no consigo a meter las comas.
Si quito el WHERE consigo esto [email protected], [email protected], [email protected] ... Es decir que todo bien pero no tengo el WHERE.
Tampoco me funcciona:
$long=strlen($data)-2;
echo $long; - - me da [email protected]@email1.com15 es decir que me cuenta cada cadena aparte en vez de interpretar como una sola de 33 caracteres...

Alguna solución.
Gracias.
  #2 (permalink)  
Antiguo 09/12/2010, 03:34
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Concatenar los datos de una consulta Mysql

Cita:
Iniciado por viorel76 Ver Mensaje
Hola,
Necesito sacar unos correos electronicos de una base de datos mysql de tipo:
[email protected], [email protected], [email protected]
Es decir con coma y espacio y sin nada al final.
Utilizo la siguiente consulta:

$sql = mysql_query("SELECT email FROM usuarios WHERE id = '$id1'" , $link);

$resultados = array();
while($row = mysql_fetch_array($sql)) {
$resultados[] = $row[0];
}

foreach ($resultados as $key => $value) {
if ($value == NULL) { unset($resultados[$key]); }
}

$data = implode(", ", $resultados);

echo $data;

Lo que consigo es: [email protected]@email1.com donde las dos cuentas responden corectamente a WHERE pero no consigo a meter las comas.
Si quito el WHERE consigo esto [email protected], [email protected], [email protected] ... Es decir que todo bien pero no tengo el WHERE.
Tampoco me funcciona:
$long=strlen($data)-2;
echo $long; - - me da [email protected]@email1.com15 es decir que me cuenta cada cadena aparte en vez de interpretar como una sola de 33 caracteres...

Alguna solución.
Gracias.
No entiendo muy bien lo que quieres hacer..
  #3 (permalink)  
Antiguo 09/12/2010, 03:43
 
Fecha de Ingreso: octubre-2010
Mensajes: 4
Antigüedad: 14 años
Puntos: 0
Respuesta: Concatenar los datos de una consulta Mysql

Tengo una tabla en la base de datos con un campo email, cada campo contiene un email de un usuario. Necesito sacar los correos electronicos en una sola variable($data) de tipo [email protected], [email protected], [email protected] en funccion de una ID.
$data lo utilizo para un envio multiple de correos por eso necesito la cadena completa separada con comas y sin "," al final.
  #4 (permalink)  
Antiguo 09/12/2010, 03:58
 
Fecha de Ingreso: octubre-2010
Mensajes: 4
Antigüedad: 14 años
Puntos: 0
Respuesta: Concatenar los datos de una consulta Mysql

Ya lo tengo y era mas facil:
$resultado = mysql_query("SELECT group_concat(email,', ') FROM jos_users WHERE id LIKE '$id1' GROUP BY id" , $link);

while ($row = mysql_fetch_row($resultado)){

$emails.=$row[0];

$long=strlen($emails)-2;

$lista_emails = substr($emails,0,$long);

}
echo $lista_emails;
  #5 (permalink)  
Antiguo 09/12/2010, 04:37
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Concatenar los datos de una consulta Mysql

Cita:
Iniciado por viorel76 Ver Mensaje
Tengo una tabla en la base de datos con un campo email, cada campo contiene un email de un usuario. Necesito sacar los correos electronicos en una sola variable($data) de tipo [email protected], [email protected], [email protected] en funccion de una ID.
$data lo utilizo para un envio multiple de correos por eso necesito la cadena completa separada con comas y sin "," al final.
Hola buenas de nuevo,

Tu puedes hacer un select mail from tabla where condicion

Después, obtendrás un array con los emails, al hacer un while, mysql_fetch_array.

ese array se procesa con un implode(,) y listo.

Un saludo!
  #6 (permalink)  
Antiguo 09/12/2010, 06:53
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 9 meses
Puntos: 55
Respuesta: Concatenar los datos de una consulta Mysql

explode(", ", $data );

http://cl.php.net/manual/es/function.explode.php
  #7 (permalink)  
Antiguo 09/12/2010, 06:55
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Concatenar los datos de una consulta Mysql

Perdón, yo he puesto implode y es explode ... jaja

Un saludo!
  #8 (permalink)  
Antiguo 29/01/2011, 07:09
 
Fecha de Ingreso: enero-2011
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Concatenar los datos de una consulta Mysql

Gracias, me valio vuestros ejemplos

Última edición por recmal; 29/01/2011 a las 10:48

Etiquetas: concatenar, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:33.