Foros del Web » Programando para Internet » PHP »

listado de valores en array...

Estas en el tema de listado de valores en array... en el foro de PHP en Foros del Web. Saludos... Tengo una consulta a una base dedatos, en la que extraigo unos valores numéricos agrupados por si mismos y listados en una array. Para ...
  #1 (permalink)  
Antiguo 06/08/2010, 01:20
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
listado de valores en array...

Saludos...

Tengo una consulta a una base dedatos, en la que extraigo unos valores numéricos agrupados por si mismos y listados en una array. Para mejor explicación, el ejemplo citado abajo:

Código PHP:
$sql "SELECT numeros FROM tabla_num GROUP BY numeros";
$result mysql_query($sql) or die (mysql_error());

    while (
$col mysql_fetch_array($resultMYSQL_NUM)) {
    
    
$numeros = array($col[0]);
    
    list(
$var)=$numeros;
    echo 
'"'.$var.'",';
    } 
El resultado de la consulta de arriba es más o menos lo que veis a continuación:

Cita:
"1","2","3","4","5","6","7","8","9","10",
El resultado con las dobles comillas y las comas lo necesito como tal, sin embargo, y esa es mi pregunta, cómo puedo hacer desaparecer la última coma (puesta en negrita) del resultado de mi array?

Gracias por vuestra ayuda.
__________________
Andrew :P
  #2 (permalink)  
Antiguo 06/08/2010, 01:28
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Respuesta: listado de valores en array...

Podrias cargar todos los numeros en un array (sin comillas ni comas, solo los numeros), y luego, fuera del while:
Código PHP:
Ver original
  1. echo '"'.implode('","', $tuArray).'"';

http://us2.php.net/manual/es/function.implode.php

Saludos
  #3 (permalink)  
Antiguo 06/08/2010, 02:10
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: listado de valores en array...

Gracias fran86...

El problema es que mi array se genera naturalmente sin comas ni comillas. Es decir, después de:
Código PHP:
list($var)=$numeros
si ejecuto un 'echo' de '$var', obtendré el siguiente resultado:

Cita:
12345678910
Y yo necesito construir uns sentencia a través de un 'echo' de la manera siguiente:

Cita:
"1","2","3","4","5","6","7","8","9","10"
... sin la última coma. He revisado el implode y lo he puesto en practica pero me genera un error de uso inadecuado.
__________________
Andrew :P
  #4 (permalink)  
Antiguo 06/08/2010, 02:48
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: listado de valores en array...

Buenas,

Mira, podrías utilizar un if:

Código PHP:
Ver original
  1. $sql = "SELECT numeros FROM tabla_num GROUP BY numeros";
  2.     $result = mysql_query($sql) or die (mysql_error());
  3.     $i = 0;
  4.     $total = mysql_num_rows($result);
  5.     while ($col = mysql_fetch_array($result, MYSQL_NUM)) {
  6.    
  7.     $numeros = array($col[0]);
  8.    
  9.     list($var)=$numeros;
  10.      
  11.     if($total - 1 != $i) {
  12.      echo '"'.$var.'",';
  13.     }else{
  14.      echo '"'.$var.'"';
  15.     }
  16.     $i++;
  17.     }

Saludos
  #5 (permalink)  
Antiguo 06/08/2010, 03:10
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: listado de valores en array...

Hola DeFFer...

Es realmente interesante tu propuesta. No había pensado en un 'if' y me estaba atando solamente a las posibilidades del 'array'.

Solo una pregunta para acabar de entender tu código que funciona perfectamente:

Código PHP:
if($total != $i)
echo 
'"'.$var.'",'
El código de arriba significa que si el último valor de la array (-1) no es igual a cero, debe imprimir el valor con la coma?
__________________
Andrew :P
  #6 (permalink)  
Antiguo 06/08/2010, 06:02
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Respuesta: listado de valores en array...

Funciones de cadenas.

Código PHP:
$sql "SELECT numeros FROM tabla_num GROUP BY numeros"
$result mysql_query($sql) or die (mysql_error()); 

    while (
$col mysql_fetch_array($resultMYSQL_NUM)) { 
     
    
$numeros = array($col[0]); 
     
    list(
$var)=$numeros
    
$arreglo.= '"'.$var.'",'
    } 
En la variable arreglo tienes ya tu cadena necesaria ahora solo eliminale el ultimo caracter.

Código PHP:
$cadena substr($arreglo,0,-1);
echo 
$cadena


Aunque usando implode quedaría mejor..

Código PHP:
$sql "SELECT numeros FROM tabla_num GROUP BY numeros"
$result mysql_query($sql) or die (mysql_error()); 
    
$numeros = array();
    while (
$col mysql_fetch_array($resultMYSQL_NUM)) { 
    
$numeros[]= $col[0];
    }  
$cadena implode(',',$numeros);
echo 
$cadena
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #7 (permalink)  
Antiguo 06/08/2010, 23:45
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Respuesta: listado de valores en array...

Es que al array tenes que generarlo vos dentro del while, y fuera del bucle haces el echo. Leiste el el link del manual que te pase? A implode() le das un array, no una cadena.

Código PHP:
Ver original
  1. $tuArray = array(1,2,3,4,5,6); // esto tenes que constrirlo dentro del while
  2. echo '"'.implode('","', $tuArray).'"'; // imprime "1","2","3","4","5","6"

Para armar el array en cada interaccion, usa array_push(), o $tuArray[] = $cadaNumero;

Veras aca que es lo mismo:
http://www.php.net/manual/es/function.array-push.php

Saludos!
  #8 (permalink)  
Antiguo 09/08/2010, 02:20
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
De acuerdo Respuesta: listado de valores en array...

Muchas gracias a todos vosotros por vuestras útiles respuestas! Todas funcionan a la perfección... Es increíble como PHP funciona con mucha imaginación y con las muchas posibilidades que tiene su sintaxis.

Saludos!

POST RESUELTO!
__________________
Andrew :P

Etiquetas: listado
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 06:19.