Foros del Web » Programando para Internet » PHP »

Modificar ultimo elemento de un while

Estas en el tema de Modificar ultimo elemento de un while en el foro de PHP en Foros del Web. Hola! Tengo el siguiente código: Código PHP: while( $datos_nombre = mysql_fetch_array ( $consulta_nombre )){              $autor_enlazado = $datos_nombre [ "nombre" ];              $id_autor = $datos_nombre ...
  #1 (permalink)  
Antiguo 30/12/2008, 13:50
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Modificar ultimo elemento de un while

Hola!

Tengo el siguiente código:

Código PHP:

while($datos_nombre=mysql_fetch_array($consulta_nombre)){

            
$autor_enlazado=$datos_nombre["nombre"];
            
$id_autor=$datos_nombre["id"];


            echo 
"<a href=\"nombre.php?id=$id_autor\">" .$autor_enlazado"</a>" ", "
que me genera lo siguiente:

Nombre 1, Nombre 2, Nombre 3,

La cantidad de elementos es indeterminada. ¿Hay alguna manera para que el último elemento no tenga el ", " (coma espacio) ?

Nombre 1, Nombre 2, Nombre 3

Y sería fantástico lograr algo como:

Nombre 1, Nombre 2 y Nombre 3


¿Alguna ayuda?

Gracias

Samuel.
__________________
Equívocos sin importancia
  #2 (permalink)  
Antiguo 30/12/2008, 14:09
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Modificar ultimo elemento de un while

Podrías sacar el número de elementos, hacer un for en vez de un while y con un if comprobar si estás en el e último elemento para no añadir la coma y el espacio....

Pero casi te sale mejor dejarlo como está y al salir del while eliminas los dos últimos carácteres de la cadena, con substr.
  #3 (permalink)  
Antiguo 30/12/2008, 15:06
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: Modificar ultimo elemento de un while

Hola, Keysher

Gracias por tu ayuda. Intente el método con substr, pero tengo el siguiente problema:

Como Nombre1, Nombre2, Nombre3, no es una sola cadena sino 3 distintas, cuando aplico el subsrt me elimna el espacio y la coma de los tres elementos. Creo que lo ideal sería hacer como dices, contar los devueltos y entonces al ultimo no aplicarle el espacio y la coma... ¿cómo puedo saber si estoy en el ultimo elemento de un for?

Saludos
__________________
Equívocos sin importancia
  #4 (permalink)  
Antiguo 30/12/2008, 15:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Modificar ultimo elemento de un while

Como dijo Keysher:
Código PHP:
while(condicion) {
    
// Agregas cada dato a la cadena con ', ' al final
}
// Aqui eliminas los 2 ultimos caracteres de la cadena
$cadena substr($cadena0, -2); 
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 30/12/2008, 15:15
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Modificar ultimo elemento de un while

Sí, no lo puse, pero me refería a que en el while se concatene la cadena, en vez de mostrarla.
  #6 (permalink)  
Antiguo 30/12/2008, 16:34
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: Modificar ultimo elemento de un while

Definitivamente hay algo que no estoy viendo. Tengo esto:

Código PHP:
            while($datos_nombre=mysql_fetch_array($consulta_nombre)){

            
$autor_enlazado=$datos_nombre["nombre"];
            
$id_autor=$datos_nombre["id"];


            
$cadena "<a href=\"nombre.php?id=$id_autor\">" .$autor_enlazado"</a>" ", ";

            

            }

             echo 
substr($cadena,0,-2); 
ahi me devuelve sólo el último elemento del while, ya sin la coma, pero no toda la cadena completa.

¿Cómo concateno los elementos del while?

Gracias.
__________________
Equívocos sin importancia
  #7 (permalink)  
Antiguo 30/12/2008, 16:38
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Modificar ultimo elemento de un while

Código php:
Ver original
  1. $cadena = $cadena."<a href=\"nombre.php?id=$id_autor\">" .$autor_enlazado. "</a>" . ", ";

O

Código php:
Ver original
  1. $cadena .= "<a href=\"nombre.php?id=$id_autor\">" .$autor_enlazado. "</a>" . ", ";
  #8 (permalink)  
Antiguo 30/12/2008, 16:43
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: Modificar ultimo elemento de un while

Gracias, muchas. Hoy aprendí algo nuevo.

Saludos!
__________________
Equívocos sin importancia
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:56.