Foros del Web » Programando para Internet » PHP »

¿Como mandar este array?

Estas en el tema de ¿Como mandar este array? en el foro de PHP en Foros del Web. Hola a todos/as Tengo la siguiente función: Código PHP: <?Php function  nombres_u ( $id_delegacion , $fecha , $id_jefe ){ $consulta_nombres  =  mysql_query ( "SELECT * FROM campos_prefactura WHERE (nombre_campo LIKE 'u%') ORDER BY id_campo_prefactura ASC" ); ...
  #1 (permalink)  
Antiguo 28/01/2008, 08:41
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 12 años
Puntos: 0
¿Como mandar este array?

Hola a todos/as

Tengo la siguiente función:

Código PHP:
<?Php
function nombres_u($id_delegacion,$fecha,$id_jefe){

$consulta_nombres mysql_query("SELECT * FROM campos_prefactura WHERE (nombre_campo LIKE 'u%') ORDER BY id_campo_prefactura ASC");
//    $result = mysql_query("SELECT * FROM campos_prefactura WHERE (nombre_campo LIKE 'u%') ORDER BY id_campo_prefactura ASC");

// Sacamos el numero total de filas de la consulta
$num_rows mysql_num_rows($consulta_nombres);

 
//Componemos un array con los resultado que nos devuelve la consulta

for($i=$i<=$num_rows $i++)
   {

$escribe_nombres mysql_fetch_array($consulta_nombres);

$registro_nombre[$i]['nombre'] = $escribe_nombres['nombre_campo'];
 
$cuenta_campo=$registro_nombre[$i]['nombre'];
             
//print_r ($cuenta_campo);
$procesa_suma="SUM(".$cuenta_campo.")";
// Aqui realizamos la consulta con los datos que nos ha devuelto la consulta anterior

$suma_campo=mysql_query ("SELECT $procesa_suma FROM prefactura WHERE id_delegacion='$id_delegacion' AND fecha='$fecha' AND id_jefe='$id_jefe'")or die (mysql_error());

// Metemos el resultado en un array asociativo
      
$contador=0;
while (
$escribe_suma mysql_fetch_assoc($suma_campo)){

        
$subtotales[$contador]=$escribe_suma;
        
$contador++;

 

}
       
$sub=array ($subtotales);

}
       return 
$sub;
         
print_r ($sub);

}

?>
No se como mandar los datos de $sub, si lo hago como esta en el codigo no me envia nada y si lo pongo en la llave anterior donde $sub=array ($subtotales); solo me envia el primer dato, me podeis decir que es lo que hago mal por que ya no si ni siquiera lo que estoy haciendo, jejejeje

Ojo si debajo de $sub=array ($subtotales); , pongo la instruccion siguiente, print_r ($sub); me imprime perfectamente lo que necesito, osease todo el array completo, pero ya os comento que si pongo ahi el return tal caul solo me envia el primer datos.

Saludos a todos y mil gracias por vuestra paciencia.
  #2 (permalink)  
Antiguo 28/01/2008, 08:55
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 12 años
Puntos: 14
Re: ¿Como mandar este array?

Hola

Puedes en lugar de enviar un array enviar una cadena de texto, es decir concatenas los contenidos del array en un string y luego haces la operacion contraria que seria convertir el contenido del string en un array, esto lo puedes hacer mediante las funciones de php implode y explode, revisa el manual de php para saber mas
__________________
My path is lit by my own fire, I only go where I desire
  #3 (permalink)  
Antiguo 28/01/2008, 09:26
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 12 años
Puntos: 0
Re: ¿Como mandar este array?

Cita:
Iniciado por foreverOdd Ver Mensaje
Hola

Puedes en lugar de enviar un array enviar una cadena de texto, es decir concatenas los contenidos del array en un string y luego haces la operacion contraria que seria convertir el contenido del string en un array, esto lo puedes hacer mediante las funciones de php implode y explode, revisa el manual de php para saber mas
Hola foreverOdd

He seguido tu consejo pero me imprime Array

Te pongo el codigo de como he echo el implode y el explode:

Funcion:

Código PHP:
<?Php

function nombres_u($id_delegacion,$fecha,$id_jefe){

$consulta_nombres mysql_query("SELECT * FROM campos_prefactura WHERE (nombre_campo LIKE 'u%') ORDER BY id_campo_prefactura ASC");
//    $result = mysql_query("SELECT * FROM campos_prefactura WHERE (nombre_campo LIKE 'u%') ORDER BY id_campo_prefactura ASC");

// Sacamos el numero total de filas de la consulta
$num_rows mysql_num_rows($consulta_nombres);

 
//Componemos un array con los resultado que nos devuelve la consulta

for($i=$i<=$num_rows $i++)
   {

$escribe_nombres mysql_fetch_array($consulta_nombres);

$registro_nombre[$i]['nombre'] = $escribe_nombres['nombre_campo'];
 
$cuenta_campo=$registro_nombre[$i]['nombre'];
             
//print_r ($cuenta_campo);
$procesa_suma="SUM(".$cuenta_campo.")";
// Aqui realizamos la consulta con los datos que nos ha devuelto la consulta anterior

$suma_campo=mysql_query ("SELECT $procesa_suma FROM prefactura WHERE id_delegacion='$id_delegacion' AND fecha='$fecha' AND id_jefe='$id_jefe'")or die (mysql_error());

// Metemos el resultado en un array asociativo
      
$contador=0;
while (
$escribe_suma mysql_fetch_assoc($suma_campo)){

        
$subtotales[$contador]=$escribe_suma;
        
$contador++;

/*   echo $subtotales [0]['SUM(us_g_bu)'];
   echo $subtotales [0]['SUM(uc_g_bu)'];
   echo $subtotales [0]['SUM(us_g_gn)'];*/

      //  echo $suma_1." ".$suma_2." ".$suma_3;


}
      
// $sub=array ($subtotales);
       
$subtotal implode("|"$subtotales);
          
//   print_r ($subtotal);
       
return $subtotal;
}



}
?>

Lo llamo de la siguiente manera:

Código PHP:
  $subtotalesnombres_u($id_delegacion,$fecha,$jefe[$i]);
                              
  
// print_r ($subtotales);
                                 
$subtotal explode("|"$subtotales);
                                                 echo 
$subtotal[0];
                                                       
print_r ($subtotal); 
Aqui es donde me imprime array y no tengo manera de ver lo que trae.

Haber si me das una pistita, muchas gracias por tu ayuda.
  #4 (permalink)  
Antiguo 28/01/2008, 10:30
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 11 años, 10 meses
Puntos: 5
Re: ¿Como mandar este array?

prueba esto haber que pasa
como traes el array cargado es hora de leerlo
talvez a lo mejor por eso no te imprime mas que array por que no estas imprimiendo lo que vale $i

$subtotales= nombres_u($id_delegacion,$fecha,$jefe[$i]);

// print_r ($subtotales);
$subtotal = explode("|", $subtotales);

foreach ($subtotal as $indice => $valor){
echo $valor;
print_r ($valor);
}
  #5 (permalink)  
Antiguo 28/01/2008, 11:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 12 años
Puntos: 0
Re: ¿Como mandar este array?

Cita:
Iniciado por LuZBinG Ver Mensaje
prueba esto haber que pasa
como traes el array cargado es hora de leerlo
talvez a lo mejor por eso no te imprime mas que array por que no estas imprimiendo lo que vale $i

$subtotales= nombres_u($id_delegacion,$fecha,$jefe[$i]);

// print_r ($subtotales);
$subtotal = explode("|", $subtotales);

foreach ($subtotal as $indice => $valor){
echo $valor;
print_r ($valor);
}
Hola LuZBing

Conseguido mil gracias combinando el foreach he podido conseguirlo.

Saludos
  #6 (permalink)  
Antiguo 28/01/2008, 15:23
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 11 años, 10 meses
Puntos: 5
Re: ¿Como mandar este array?

salu2
suerte
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 23:27.