Foros del Web » Programando para Internet » PHP »

Ayuda con Array y Strings

Estas en el tema de Ayuda con Array y Strings en el foro de PHP en Foros del Web. Saludos, Quisiera convertir una consulta a una base de datos en una serie de elementos a partir del array que se logra con mysql_fetch_array. La ...
  #1 (permalink)  
Antiguo 21/04/2009, 18:37
Avatar de cambalacheweb  
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 100
Antigüedad: 15 años, 9 meses
Puntos: 0
Ayuda con Array y Strings

Saludos,

Quisiera convertir una consulta a una base de datos en una serie de elementos a partir del array que se logra con mysql_fetch_array. La idea es separar estos elementos con una coma (,) pero al colocarlos en un while el último elemento tambien agarra esa coma (,) lo cual no debe hacer

Coloco el ejemplo de lo que estoy haciendo....

....

$consulta=mysql_query('SELECT nombres FROM mi_tabla');


while($mi_array($consulta))
{
echo $my_array['nombres'].",";
}

Esto imprime por ejemplo:

pepe, juan, jose, pedro,

Mi idea es que imprima:

pepe, juan, jose, pedro

Así sin la coma al final, pues ya no hay algún otro elemento que siga..... !!!

¿Como podria hacer esto?

Gracias !!!
  #2 (permalink)  
Antiguo 21/04/2009, 18:40
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda con Array y Strings

Cita:
pero al colocarlos en un while el último elemento tambien agarra esa coma (,) lo cual no debe hacer
Pero si asi lo tienes programado, por eso lo hace.

Hay varias formas, una es ir guardando en una variable lo que recoges de la consulta, y con substr eliminar la ultima coma.
Otra es guardar cada resultado en un array, y hacer un implode usando la coma como "pegamento".
Tambien podrias poner que imprima la coma AL PRINCIPIO, en vez de al final. Pero esto requeriria de una banderilla (flag) para que no imprima la coma en la 1era vuelta.

Con substr():
Código php:
Ver original
  1. <?php
  2. $foo = "";
  3. while(/* ... */)
  4. {
  5.   $foo .= $my_array['nombres'].",";
  6. }
  7. $foo = substr($foo, 0, -1);
  8. ?>

Con arrays:
Código php:
Ver original
  1. <?php
  2. $foo = Array();
  3. while(/* ... */)
  4. {
  5.   $foo[] = $my_array['nombres'];
  6. }
  7. $bar = implode(", ", $my_array);
  8. ?>
  #3 (permalink)  
Antiguo 21/04/2009, 18:58
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Ayuda con Array y Strings

$nombres=array("sebas","carolina","daniel","otro") ;
$tamano=count($nombres)-1;

for($n=0;$n<count($nombres);$n++)
{
if($n<$tamano)
{
echo $nombres[$n].",";
}
else
{
echo $nombres[$n];
}


}

sebas,carolina,daniel,otro,otro
  #4 (permalink)  
Antiguo 21/04/2009, 19:00
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Respuesta: Ayuda con Array y Strings

Lo que yo haria es sacar el tamano final de todos y poner un contador y un if

Código PHP:
$final size($mi_array);
$contador 0;
while(
$mi_array($consulta))
{
     echo 
$my_array['nombres'];
     if(
$contador $final) {
         echo 
',';
     }
     
$contador++;

  #5 (permalink)  
Antiguo 21/04/2009, 19:04
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Ayuda con Array y Strings

$consulta=mysql_query('SELECT nombres FROM mi_tabla');
$ultimo=mysql_num_rows($consulta);
$cont=1;

while($mysql_fetch_array($consulta))
{
echo $my_array['nombres'];
if($cont<$ultimo)
{
echo ",";
}
$cont++;
}
  #6 (permalink)  
Antiguo 21/04/2009, 19:08
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Respuesta: Ayuda con Array y Strings

porfavor dime las differencias con el mio que no entendi lo que dijiste
  #7 (permalink)  
Antiguo 21/04/2009, 19:10
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Ayuda con Array y Strings

a no es que cuando lo cheque primero aparecia el if afuera del while
  #8 (permalink)  
Antiguo 21/04/2009, 19:12
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Ayuda con Array y Strings

jaja yo tambien andaba buscando diferencias mm

Suerte!!
  #9 (permalink)  
Antiguo 21/04/2009, 19:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Respuesta: Ayuda con Array y Strings

a si. Me di cuenta y lo estaba modificando xD

salu2
  #10 (permalink)  
Antiguo 21/04/2009, 19:17
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Ayuda con Array y Strings

a pos antes de que lo modificaras eso fue lo que vi por eso postie que estaba mal pero ya de ahi vi que lo cambiaste por eso o tambien cambie mi respuest jiji
  #11 (permalink)  
Antiguo 21/04/2009, 19:19
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Respuesta: Ayuda con Array y Strings

ok si pero creo que si le pone $cont1 y el if con "<" le saldra una "," de menos
  #12 (permalink)  
Antiguo 21/04/2009, 19:23
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Ayuda con Array y Strings

no por que si el resultado es de una consulta el numero de registro de esa consulta lo obtiene con el num_rows o sea que su longitud empieza a contar de 1 no como en un array que empieza de cero
  #13 (permalink)  
Antiguo 21/04/2009, 19:24
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Respuesta: Ayuda con Array y Strings

ok si, es que aveses confundo con java xD
  #14 (permalink)  
Antiguo 21/04/2009, 19:25
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Ayuda con Array y Strings

Cita:
Iniciado por By_George Ver Mensaje
no por que si el resultado es de una consulta el numero de registro de esa consulta lo obtiene con el num_rows o sea que su longitud empieza a contar de 1 no como en un array que empieza de cero
Tienes razon en lo que dices toca empezar el contador desde 1
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 14:04.