Foros del Web » Programando para Internet » PHP »

problema al guardar en array.

Estas en el tema de problema al guardar en array. en el foro de PHP en Foros del Web. tengo este codigo, quiero guardar los campos que passen de 1000 en un array para mostrarlos mas tarde... y solo me guarda el ultimo campo.. ...
  #1 (permalink)  
Antiguo 04/11/2008, 13:32
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
Pregunta problema al guardar en array.

tengo este codigo, quiero guardar los campos que passen de 1000 en un array para mostrarlos mas tarde... y solo me guarda el ultimo campo.. nse si no creo bien el array o no lo guardo bien... a ver si me pueden ayudar


gracias:P

Código PHP:
$sql "SELECT p.testdim,p.testdate, p.milk, p.fat,p.scc,p.prot,p.herd_id, h.herd_id, h.codi,a.herd_id,max( a.parity )    ,                           a.endparitydate
                   FROM production p , herd h, ag_parity a
                  WHERE p.TESTDATE = '2008-05-07'
                 and p.herd_id= a.herd_id 
                 and a.herd_id= h.herd_id
                 and p.herd_id= h.herd_id
                 GROUP BY a.herd_id
                 LIMIT 0, 150"
;
        
    
        
$consultsql=new Consulta;
                
$result=$consultsql->executar($sql);
        
            
        while(
$row=mysql_fetch_array($result))   
              {
              
                   
$celules=$row['scc'];
                
                if (
$celules>=1000)
                   {     
                                         if (!isset(
$_SESSION['maxscc']))
                                              {
                        
$_SESSION['maxscc'] = array();
                        
$_SESSION['maxscc'][]=$row['scc'];
                               }
                 
                         else
                         {
                          
$_SESSION['maxscc'][]=$row['scc'];
                     }
                 
                
                      }
            
            
mysql_free_result($result);  //Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.
                                      // Mysql_free_result() es fa servir per lliberar memoria feta servir a les consultes, i es                                                    necessari depenent del nº de consultes "visites" que i fem.
       
             
printf ($_SESSION['maxscc']);
              
              
              
               
           
    } 
codigoo de eerror

Fatal error: [] operator not supported for strings in C:\xampp\htdocs\projecte\alertes.php on line 44

Última edición por bellleti; 04/11/2008 a las 13:38 Razón: error num:
  #2 (permalink)  
Antiguo 04/11/2008, 13:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al guardar en array.

cual es el error??

que imprime el printf???

sabes, debes hacer algo con estas lineas... están redundas

Cita:
if (!isset($_SESSION['maxscc']))
{
$_SESSION['maxscc'] = array();
$_SESSION['maxscc'][]=$row['scc'];
}

else
{
$_SESSION['maxscc'][]=$row['scc'];
}
recuerda, primero declara la variable antes de entrar al ciclo... y ya dentro, úsala sin remordimientos... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/11/2008, 13:40
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
Respuesta: problema al guardar en array.

Cita:
Iniciado por pateketrueke Ver Mensaje
cual es el error??

que imprime el printf???

sabes, debes hacer algo con estas lineas... están redundas



recuerda, primero declara la variable antes de entrar al ciclo... y ya dentro, úsala sin remordimientos... suerte!
creo que esta parte esta bien no? primero miro si esta creado el array con !isset si no esta creado lo creo y meto el primer numero i si esta creado, pues meto el numero porque antes ya puse el primero.... esa es la idea nose si bien o no...
  #4 (permalink)  
Antiguo 04/11/2008, 13:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al guardar en array.

si, esta bien tu idea... pero el problema es... lo haces en cada vuelta del ciclo!!!

y si, nunca se sobre escribe pero eso de hacerlo en cada vuelta esta mal, no crees?

ahora... cual es la linea del error???

osea... el numero de linea...

puedes señalarla en el código (es difícil adivinar)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/11/2008, 13:49
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
Respuesta: problema al guardar en array.

Cita:
Iniciado por pateketrueke Ver Mensaje
si, esta bien tu idea... pero el problema es... lo haces en cada vuelta del ciclo!!!

y si, nunca se sobre escribe pero eso de hacerlo en cada vuelta esta mal, no crees?

ahora... cual es la linea del error???

osea... el numero de linea...

puedes señalarla en el código (es difícil adivinar)
$_SESSION['maxscc'][]=$row['scc']; aki esta el error ,


Fatal error: [] operator not supported for strings in C:\xampp\htdocs\projecte\alertes.php on line 44

gracias por la ayuda pateketrueke! :P un saludo a ver si sabes tu donde hago mal :(
  #6 (permalink)  
Antiguo 04/11/2008, 13:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al guardar en array.

el detalle, supongo... esta en la asignación directa de $_SESSION

intenta, usar un arreglo común desde el comienzo...

Código PHP:
$foo=array();

// ...

$foo[] = '...'
y al final, lo asignas directamente a

Código PHP:
$_SESSION['bar'] = $foo
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 04/11/2008, 16:35
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
Respuesta: problema al guardar en array.

Cita:
Iniciado por bellleti Ver Mensaje
tengo este codigo, quiero guardar los campos que passen de 1000 en un array para mostrarlos mas tarde... y solo me guarda el ultimo campo.. nse si no creo bien el array o no lo guardo bien... a ver si me pueden ayudar


gracias:P

Código PHP:
$sql "SELECT p.testdim,p.testdate, p.milk, p.fat,p.scc,p.prot,p.herd_id, h.herd_id, h.codi,a.herd_id,max( a.parity )    ,                           a.endparitydate
                   FROM production p , herd h, ag_parity a
                  WHERE p.TESTDATE = '2008-05-07'
                 and p.herd_id= a.herd_id 
                 and a.herd_id= h.herd_id
                 and p.herd_id= h.herd_id
                 GROUP BY a.herd_id
                 LIMIT 0, 150"
;
        
    
        
$consultsql=new Consulta;
                
$result=$consultsql->executar($sql);
        
            
        while(
$row=mysql_fetch_array($result))   
              {
              
                   
$celules=$row['scc'];
                
                if (
$celules>=1000)
                   {     
                                         if (!isset(
$_SESSION['maxscc']))
                                              {
                        
$_SESSION['maxscc'] = array();
                        
$_SESSION['maxscc'][]=$row['scc'];
                               }
                 
                         else
                         {
                          
$_SESSION['maxscc'][]=$row['scc'];
                     }
                 
                
                      }
            
            
mysql_free_result($result);  //Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.
                                      // Mysql_free_result() es fa servir per lliberar memoria feta servir a les consultes, i es                                                    necessari depenent del nº de consultes "visites" que i fem.
       
             
printf ($_SESSION['maxscc']);
              
              
              
               
           
    } 
codigoo de eerror

Fatal error: [] operator not supported for strings in C:\xampp\htdocs\projecte\alertes.php on line 44
alguien sabe ese error porque sale?? gracias
  #8 (permalink)  
Antiguo 04/11/2008, 16:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema al guardar en array.

Hola belleti,

Veo que no haz puesto en practica nada de lo que te dijo pateketrueke, lee bien lo que te dice e implementalo, de lo contrario te va a seguir marcando error.

Por otro lado ve que tipo de variable tienes en $_SESSION['maxscc'] ya que al parecer es un string. Revisa si register_globals esta en On ya que si lo esta es probable que tu variable se sobreescriba.

Saludos.
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 05:05.