Foros del Web » Programando para Internet » PHP »

concatenacion $email.=$row['email'] no funciona

Estas en el tema de concatenacion $email.=$row['email'] no funciona en el foro de PHP en Foros del Web. Tengo este codigo y no me funciona completamente, solo me guarda en la variable $email el ultimo valor de la consulta de la BD pero ...
  #1 (permalink)  
Antiguo 24/10/2011, 15:58
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
concatenacion $email.=$row['email'] no funciona

Tengo este codigo y no me funciona completamente, solo me guarda en la variable $email el ultimo valor de la consulta de la BD pero quiero que me guarde todos los emails...

Intente asi:

Código PHP:

    
echo "<table class=\"suscribers\">";
while (
$rowmysqli_fetch_array($result)){
    
$email=$row['email'].', ';
$email.=$row['email'];
    
    echo 
'<tr><td>'.$row['firstname'].'</td><td>&nbsp;-&nbsp;</td><td>&nbsp;'.$row['email'].'</td></tr>';
    
                                         } 


    echo 
'<a href="mailto:'.$email.'">Enviar correo a todos</a>';  
    
    echo 
'</table>';                            
                    

Pense que era la concatenacion pero creo que esta bien por lo que consulte
  #2 (permalink)  
Antiguo 24/10/2011, 16:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: concatenacion $email.=$row['email'] no funciona

Lo que sucede es que siempre sobreescribes el valor, una y otra vez dentro del bucle.

Intenta declarar una sola vez fuera del bucle, y dentro concatenar una sola vez.
Código PHP:
$foo '';
while (
/* ... */)
{
  
$foo .= '';

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/10/2011, 16:20
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: concatenacion $email.=$row['email'] no funciona

Eso es lo que hice al principio pero el tema es que $row esta declarado adentro de while y me tira error de que la variable obviamente no esta declarada... Podria funcionar algo asi??

Código PHP:

$row
=mysqli_fetch_array($result);    

$email=$row['email'].', ';

while (
$row!==''){
    

$email.=$row['email']; 
no estoy seguro del while ($row!='')
  #4 (permalink)  
Antiguo 24/10/2011, 16:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: concatenacion $email.=$row['email'] no funciona

Está mal como lo piensas hacer, y de hecho te estas confundiendo sin razón.

No necesitas asignar ninguna variable fuera del bucle, solo necesitas inicializar la variable y no más.

Dentro del bucle debes concatenar normalmente, no hay necesidad de duplicar las cosas.
Código PHP:
$email='';

while (
$row=mysqli_fetch_array($result)){
$email.=$row['email'] . ','
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 24/10/2011, 16:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: concatenacion $email.=$row['email'] no funciona

huy tenes razon, no se para que puse lo de row... solo tenia que declararla.. grax! ahora lo hago funcionar seguro
  #6 (permalink)  
Antiguo 24/10/2011, 16:49
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: concatenacion $email.=$row['email'] no funciona

Mi codigo funcionando por si alguien necesita ayuda:

Código PHP:
    echo "<table>";    

$email='';

while (
$row=mysqli_fetch_array($result)){
    
$email.=$row['email'].', ';
    
    echo 
'<tr><td>'.$row['firstname'].'</td>';
        echo 
'<td>-</td>';
        echo 
'<td>&nbsp;'.$row['email'].'</td></tr>';
    
            } 


    echo 
'<a href="mailto:'.$email.'">Enviar Email a todos los suscriptos</a>';  
    echo 
'</table>';                            
                    
}

?> 

Etiquetas: mysql, variables
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 02:55.