Foros del Web » Programando para Internet » PHP »

Problema con bucle y array

Estas en el tema de Problema con bucle y array en el foro de PHP en Foros del Web. holas, estoy haciendo un bucle para agregar informacion que extraigo de una bd a un grafico y tengo un problema, resulta que extraigo las variables ...
  #1 (permalink)  
Antiguo 13/09/2010, 16:10
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 9 meses
Puntos: 5
Problema con bucle y array

holas, estoy haciendo un bucle para agregar informacion que extraigo de una bd a un grafico y tengo un problema, resulta que extraigo las variables de la bd que estan de esta forma: "var1,var2,var3,vrtn", y como los arrays comienzan de 0 esto me ha complicado mucho la vida. les dejo el code:

Código PHP:

            $vars_actitud 
$db->select_one("SELECT variables FROM factores WHERE titulo = 'Actitud'");
            
$array_vars_actitud explode(",",$vars_actitud);
            
$cant_vars_array_actitud count($array_vars_actitud);
            
$letras = array('1' => 'A',
                            
'2' => 'B',
                            
'3' => 'C',
                            
'4' => 'D',
                            
'5' => 'E',
                            
'6' => 'F',
                            
'7' => 'G',
                            
'8' => 'H',
                            
'9' => 'I',
                            
'10' => 'J',
                            
'11' => 'K',
                            
'12' => 'L',
                            
'13' => 'M',
                            
'14' => 'O',
                            
'15' => 'P',
                            
'16' => 'Q',
                            
'17' => 'R',
                            
'18' => 'S',
                            
'19' => 'T',
                            
'20' => 'U');
            
            
            for(
$i=0$i<=($cant_vars_array_actitud 1); $i++):
            
                
$sql "SELECT COUNT(*) FROM la_tabla WHERE ";
                
$sql .= $array_vars_actitud[$i];
                
$sql .= " = 1 AND MONTH(fecha) = ";
                
$sql .= $fecha_form;
                
                
$vars $db->select_one($sql);
                
                
$DataSet->AddPoint($vars"Serie1");
                
                
$DataSet->AddPoint($umbral_actitud"Serie2");
                
$DataSet->AddPoint(array($letras[$i]), "Serie4");
                
                                        
            endfor; 
en concreto me grafica muy bien, pero en el eje X me muestra solamente hasta la letra M y no la N que es la ultima, se que tiene relacion con que el bucle termina antes por que lo inicie del 0 para que me integre el primer valor del array $array_vars_actitud, como puedo solucionar este dilema???

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #2 (permalink)  
Antiguo 13/09/2010, 19:13
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Problema con bucle y array

Cita:
Iniciado por cadrogui Ver Mensaje
holas, estoy haciendo un bucle para agregar informacion que extraigo de una bd a un grafico y tengo un problema, resulta que extraigo las variables de la bd que estan de esta forma: "var1,var2,var3,vrtn", y como los arrays comienzan de 0 esto me ha complicado mucho la vida. les dejo el code:

Código PHP:

            $vars_actitud 
$db->select_one("SELECT variables FROM factores WHERE titulo = 'Actitud'");
            
$array_vars_actitud explode(",",$vars_actitud);
            
$cant_vars_array_actitud count($array_vars_actitud);
            
$letras = array('1' => 'A',
                            
'2' => 'B',
                            
'3' => 'C',
                            
'4' => 'D',
                            
'5' => 'E',
                            
'6' => 'F',
                            
'7' => 'G',
                            
'8' => 'H',
                            
'9' => 'I',
                            
'10' => 'J',
                            
'11' => 'K',
                            
'12' => 'L',
                            
'13' => 'M',
                            
'14' => 'O',
                            
'15' => 'P',
                            
'16' => 'Q',
                            
'17' => 'R',
                            
'18' => 'S',
                            
'19' => 'T',
                            
'20' => 'U');
            
            
            for(
$i=0$i<=($cant_vars_array_actitud 1); $i++):
            
                
$sql "SELECT COUNT(*) FROM la_tabla WHERE ";
                
$sql .= $array_vars_actitud[$i];
                
$sql .= " = 1 AND MONTH(fecha) = ";
                
$sql .= $fecha_form;
                
                
$vars $db->select_one($sql);
                
                
$DataSet->AddPoint($vars"Serie1");
                
                
$DataSet->AddPoint($umbral_actitud"Serie2");
                
$DataSet->AddPoint(array($letras[$i]), "Serie4");
                
                                        
            endfor; 
en concreto me grafica muy bien, pero en el eje X me muestra solamente hasta la letra M y no la N que es la ultima, se que tiene relacion con que el bucle termina antes por que lo inicie del 0 para que me integre el primer valor del array $array_vars_actitud, como puedo solucionar este dilema???

gracias.
Hola
pregunto algo, estas usando el $letras para asignar los puntos a la gráfica,
pero en $letras no esta la N, no sera ese el asunto??

si ese no es el asunto, y dices que falta una posición, intenta quitar el -1
en la declaración del for a ver si de ese modo la muestra
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 14/09/2010, 09:17
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 9 meses
Puntos: 5
Respuesta: Problema con bucle y array

he tratado con el -1 pero nada de nada, existe la posibilidad de eliminar el 0 como elemento inicial del array??

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #4 (permalink)  
Antiguo 14/09/2010, 09:22
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 8 meses
Puntos: 22
Respuesta: Problema con bucle y array

No se si lo he entendido bien, pero ¿no te valdría con iniciar el bucle en 1?

for($i=1; $i<=($cant_vars_array_actitud - 1); $i++):
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #5 (permalink)  
Antiguo 14/09/2010, 09:32
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 9 meses
Puntos: 5
Respuesta: Problema con bucle y array

no piedo, por que el primero valor del array es 0, y el 1 es el 0 de array.

:S
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #6 (permalink)  
Antiguo 14/09/2010, 09:39
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 5 meses
Puntos: 334
Respuesta: Problema con bucle y array

eso es porque lo declaras asociativo al poner las key entre guiones

no es lo mismo

Código PHP:
Ver original
  1. array( '1' => 'foo' )
a
Código PHP:
Ver original
  1. array( 1 => 'foo' )

prueba y comenta.. saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 14/09/2010, 09:45
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 9 meses
Puntos: 5
Respuesta: Problema con bucle y array

de momento lo he solucionado de forma bastante "artesanal", solamente mientras consigo el fix, lo he solucionado agregando en la bd un campo extra, peor vacio al inicio del array, de esta forma el valor 0 del array pertenece a la cadena vacia, y tambien le puse 1 al for.

alguna sugerencia??

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl

Etiquetas: bucle
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 13:23.