Foros del Web » Programando para Internet » PHP »

Modificar Array

Estas en el tema de Modificar Array en el foro de PHP en Foros del Web. Hola, Tengo un array para crear cabeceras para un PDF, uso la Clase R&OS el codigo es el siguiente: Código PHP: //-- Cabecera de la Tabla- $cols  = array( 'persona' ...
  #1 (permalink)  
Antiguo 08/10/2008, 01:39
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Modificar Array

Hola,
Tengo un array para crear cabeceras para un PDF, uso la Clase R&OS
el codigo es el siguiente:
Código PHP:
//-- Cabecera de la Tabla-
$cols = array('persona'=> 'Persona','dni'=> 'DNI', ...); 
Lo q quiero es poder hacer esa cabecera desde una consulta
Código PHP:
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
while(
$res_abs mysql_fetch_row($sql_abs)){
$cols = array(...)    ;

Luego una vez rellenado las cabeceras se tiene q dar valores para generar la tabla para el PDF.
Código PHP:
$data[] = array('persona'=> $persona,    'dni'=> $dni,...); 
Como seria para modificar o añadir esos datos al array creado???


Saludos y gracias!
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #2 (permalink)  
Antiguo 08/10/2008, 08:06
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Modificar Array

se entiende lo q quiero?
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 08/10/2008, 08:48
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Modificar Array

Que tal sergi_climent, no entiendo muy bien lo que deseas hacer, si te refieres a llenar el array con los datos de la consulta pues simplemente haces esto
Código PHP:
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error()); 
while(
$res_abs mysql_fetch_array($sql_abs)){ 
$cols = array('persona'=>$res_abs['persona'], 'dni'=>$res_abs['dni']); // Asi sucesivamente

Disculpa si no te entendí, pero no eres muy claro en lo que planteas



Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #4 (permalink)  
Antiguo 08/10/2008, 08:54
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Modificar Array

No me entendiste no!
la idea es q l'array sea el siguiente:

Para crearlo:
Código PHP:
//-- Cabecera de la Tabla- 
$cols = array('persona'=> 'Persona'); 
Ahora quiero ampliarlo:
Código PHP:
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error()); 
while(
$res_abs mysql_fetch_row($sql_abs)){ 
$cols = array('$res_abs[0]' =>'$res_abs[1]')    ; 

Esot deberia quedar asi, pero no:
Array('Persona' =>'Persona', 1=> 'Baja', 2=> 'Baja Medica', 3=> 'Baja Laboral'...);

Esto va relacionado con un PDF q saco con la clase q comente antes, tengo q crear esta cabecera dinamicamente!


se entiende ahora?
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #5 (permalink)  
Antiguo 08/10/2008, 09:26
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Modificar Array

Si quieres el codigo entero:

Código PHP:
<? 
require("../../../../aut_verifica.inc.php");
error_reporting(E_ALL); 
include(
'../../../class/class.ezpdf.php'); 
$pdf = & new Cezpdf('A4','landscape'); 
$pdf->selectFont('../../../class/fonts/Helvetica');
$pdf->ezStartPageNumbers(800,10,10,'','{PAGENUM} de {TOTALPAGENUM}',1); */
//-------------------------------------
//-- Variable per fer la clausula Where
$WHEREHAN        '';
$WHEREEMPRESA    '';
$ur             '';

if (isset(
$_GET['id_empresa']) && ($_GET['id_empresa'] > 0)){
    
$WHEREEMPRESA " WHERE id_empresa=$_GET[id_empresa]";
    
$ur          .= "&id_empresa=$_GET[id_empresa]";
}else{
    
$WHEREEMPRESA " WHERE id_empresa=1 or id_empresa=3";
}

if (isset(
$_GET['id_seccio']) && ($_GET['id_seccio'] > 0)){
    
$WHERESECCIO " AND hores= 1 AND id_seccio=$_GET[id_seccio]";
    
$ur         .= "&id_seccio=$_GET[id_seccio]";
}else{
    
$WHERESECCIO " AND hores = 1";
}

if (isset(
$_GET['cooperativa']) && ($_GET['cooperativa'] != 3)){
    
$WHEREHAN .= " AND cooperativa = $_GET[cooperativa]";
    
$ur       .= "&cooperativa=$_GET[cooperativa]";    
}

if (isset(
$_GET['desde'])){
    
$desde       = ($_GET['desde']);
    
$ur      .= "&desde=$desde";
}
if(isset(
$_GET['fins'])){
    
$fins      = ($_GET['fins']);
    
$ur      .= "&fins=$fins";
}

if(
$_GET['desde'] == $_GET['fins']){
    
$capcesetmana "Fecha ".$_GET['desde'];
}else{
    
$capcesetmana "Fecha Desde ".$_GET['desde']." - Hasta ".$_GET['fins'];
}
// --------------------------------------------------------------------------------- //
$data = array();

// -- Absencies entre dates --//
$str_abs  "SELECT DISTINCT h.id_tipoabsencia, tipoabsencia 
             FROM hores h,tipo_absencia ta 
             WHERE h.id_tipoabsencia != 0 AND ta.situacio = 0 AND festiu=0
             AND h.id_tipoabsencia = ta.id_tipoabsencia
             AND data >="
.$desde." AND data <=".$fins."
             GROUP BY h.id_tipoabsencia"
;
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
$nreg_abs mysql_num_rows($sql_abs);
// ---------------------------- //


// -- Busquem la empresa  ---- //
$str_empresa  "SELECT id_empresa,nom_empresa FROM empresa $WHEREEMPRESA 
                 ORDER BY id_empresa ASC"
;
$sql_empresa  mysql_query($str_empresa) or die("ERROR SQL EMPRESA: ".mysql_error());
$nreg_empresa mysql_num_rows($sql_empresa);
if(
$nreg_empresa != 0){
    while(
$res_empresa mysql_fetch_row($sql_empresa)){    
    
    
$idempresa     $res_empresa[0];
    
$nomempresa     $res_empresa[1];
    
/*
    echo $idempresa."<br>";
    */
    
$pdf->ezText($nomempresa,10,array('justification' => 'center'));
    
$pdf->ezText('',10);
    
    
    
$str_seccio  "SELECT id_seccio, nom_seccio 
                    FROM seccio WHERE id_empresa = "
.$res_empresa['0']."
                    $WHERESECCIO
                    ORDER BY nom_seccio ASC"
;
    
$sql_seccio  mysql_query($str_seccio) or die("ERROR SQL EMPRESA: ".mysql_error());
    
$nreg_seccio mysql_num_rows($sql_seccio);
        if(
$nreg_seccio != 0){
            while(
$res_secciomysql_fetch_row($sql_seccio)){        
            
//echo $WHEREHAN;
            
$str_hores_persona "SELECT p.id_persona,p.dni, p.nom, p.cognom1, p.cognom2, p.cooperativa
                                  FROM hores h INNER JOIN personal p
                                  ON h.id_persona = p.id_persona
                                  WHERE p.id_seccio="
.$res_seccio['0']." AND p.id_persona != '' 
                                  AND data >= "
.$desde." AND data <= ".$fins."  $WHEREHAN 
                                  GROUP BY p.dni ORDER BY p.id_seccio,p.dni"
;
            
/*
            echo $str_hores_persona."<br>";                      
            */
            
$sql_hores_persona  mysql_query($str_hores_persona) or die("Error en consulta 1: ".mysql_error());
            
$nreg_hores_persona mysql_num_rows($sql_hores_persona);
            
/*
            echo $nreg_hores_persona."<br>";
            */
            
if ($nreg_hores_persona != 0){
                
/**/
                //-- coloca una linia a dalt i baix a totes les pagines 
                
$all $pdf->openObject(); 
                
$pdf->saveState(); 
                
$pdf->setStrokeColor(0,0,0,1); 
                
$pdf->line(20,20,830,20); 
                
$pdf->line(20,575,830,575); 
                
$pdf->addText(20,580,10,'Horas Semanales por Seccion - Arcadíe España - '.$capcesetmana); 
                
$pdf->addText(750,580,10,'RRHH'); 
                
$pdf->addText(730,10,10,'Pagina'); 
                
$pdf->restoreState(); 
                
$pdf->closeObject(); 
                
//-- acaba les lineas 
                
$pdf->addObject($all,'all'); 
                
/**/
                
                //-- Aqui es coloca la capçelera de la Taula -- //
                
$cols = array('persona'                   => 'Persona'); 
                    
                
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
                while(
$res_abs mysql_fetch_row($sql_abs)){
                    
$cols[] = array($res_abs['0'] => $res_abs['1'])    ;
                }
                
// ------------------------------------------- //            
                /*
                echo "<pre>";
                print_r($cols);
                echo "</pre>";
                */
                
while ($res_hores_persona mysql_fetch_row($sql_hores_persona)) {
                
//nom de la persona
                
$nomcomplet $res_hores_persona['3']." ".$res_hores_persona['4'].", ".$res_hores_persona['2'];
                
$nomcomplet htmlentities($nomcomplet);
                
                    
$data[] = array('Persona' => $nomcomplet);
                    
                    
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
                    while(
$res_abs mysql_fetch_row($sql_abs)){    
                    
                        
$str_hores_abs "SELECT sum(absencia)
                                          FROM hores h INNER JOIN personal p
                                          ON h.id_persona = p.id_persona
                                          WHERE p.id_seccio="
.$res_seccio['0']." AND p.id_persona = ".$res_hores_persona['0']."
                                          AND id_tipoabsencia = "
.$res_abs['0']." AND data >= ".$desde." AND data <= ".$fins."
                                          GROUP BY p.dni,id_tipoabsencia"
;
                        
//echo $str_hores_abs."<br>";
                        
$sql_hores_abs  mysql_query($str_hores_abs)or die("Error SQL Horas Ausencia: ".mysql_error());
                        
$nreg_hores_abs mysql_num_rows($sql_hores_abs);    
                        if(
$nreg_hores_abs !=0){                              
                            
                            
$res_hores_abs     mysql_fetch_row($sql_hores_abs);
                            
$hores_abs         $res_hores_abs['0'];
                            
                        }else{
                        
                            
$hores_abs 0;
                            
                        }
                        
$data[] = array($res_abs[0] => number_format($hores_abs,2,",","."));

                    }
// -- while($res_abs = mysql_fetch_row($sql_abs)){
                
}// -- while ($res_hores_persona = mysql_fetch_row($sql_hores_persona)) {
            
}// -- if ($nreg_hores_persona != 0){
            
}// -- while($res_seccio= mysql_fetch_row($sql_seccio)){    
        
}// -- if($nreg_seccio != 0){
    
}// --    while($res_empresa = mysql_fetch_row($sql_empresa)){
}// --if($nreg_empresa != 0){

    
$pdf->ezTable($data,$cols,'',array('fontSize'=>8
                  
'cols'=>array(  'persona'                => array('justification' => 'left'),
                                    
'$res_abs['1']'         => array('justification' => 'right')) 
                            ));
//-- sortida                     
    
$pdf->ezText('',10);
    
$data '';




if (isset(
$d) && $d){ 
    
$pdfcode $pdf->ezOutput();  //-- Necessari xq funcioni ezStartPageNumbers 
    
$pdfcode str_replace('\n','\n<br>',htmlspecialchars($pdfcode)); 
    echo 
'<html><body>'
    echo 
trim($pdfcode); 
    echo 
'</body></html>'
} else { 
    
$pdf->ezStream();  //Necessari xq funcioni ezStartPageNumbers 
}
/*
echo "<pre>";
print_r($data);
echo "</pre>";
/**/
?>
El problema lo tengo en el final:
Código PHP:
$pdf->ezTable($data,$cols,'',array('fontSize'=>8
'cols'=>array(  'persona'=> array('justification' => 'left'),
//AQUI TENDRIA Q METER EL BUCLE PARA CUADRAR LAS COLUMNAS Y NO SER COMO HACERLO
/*
$sql_abs  = mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error()); 
while($res_abs = mysql_fetch_row($sql_abs)){ 
 $cols[] = array($res_abs['0'] => array('justification' => 'right')   ; 

*/
$res_abs['0']=> array('justification' => 'right')) 
));
//-- sortida 
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #6 (permalink)  
Antiguo 09/10/2008, 00:44
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Modificar Array

Sigo con el mismo problema, no ser como hacer el ultimo trocito q puse en el ultimo post....
son parametros q hay q pasar para crear el estilo de la tabla de PDF!

Alguna idea?

MODIFICADO:
consegui lo siguiente pero aun no me sirve:
Código PHP:
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
$nreg_abs mysql_num_rows($sql_abs);
$i=0;
while(
$res_abs mysql_fetch_row($sql_abs)){
if(
$nreg_abs == $i){
$cols2[] = array($res_abs['0'] => array('justification' => 'left'));                
}else{
$cols2[] = array($res_abs['0'] => array('justification' => 'left'));                
}
$i++;
}
echo 
"<pre>";
print_r($cols2);
echo 
"</pre>";
$pdf->ezTable($data,$cols,'',array('fontSize'=>8
 
'cols'=>array(  'persona'=> array('justification' => 'left'),
$cols2)              
));
//-- sortida                     
$pdf->ezText('',10); 
al imprimir $cols2 sale lo siguiente:
Código PHP:
Array
(
    [
0] => Array
        (
            [
12] => Array
                (
                    [
justification] => left
                
)

        )

    [
1] => Array
        (
            [
20] => Array
                (
                    [
justification] => left
                
)

        )

    [
2] => Array
        (
            [
21] => Array
                (
                    [
justification] => left
                
)

        )

    [
3] => Array
        (
            [
26] => Array
                (
                    [
justification] => left
                
)

        )

    [
4] => Array
        (
            [
28] => Array
                (
                    [
justification] => left
                
)

        )

    [
5] => Array
        (
            [
29] => Array
                (
                    [
justification] => left
                
)

        )

    [
6] => Array
        (
            [
30] => Array
                (
                    [
justification] => left
                
)

        )

    [
7] => Array
        (
            [
31] => Array
                (
                    [
justification] => left
                
)

        )

    [
8] => Array
        (
            [
32] => Array
                (
                    [
justification] => left
                
)

        )

    [
9] => Array
        (
            [
34] => Array
                (
                    [
justification] => left
                
)

        )


y lo q necesito crear es lo siguiente:
Código PHP:
$pdf->ezTable($data,$cols,'',array('fontSize'=>8'width'=>700
'cols'=>array(  'Persona'=> array('justification' => 'right'),
 
'1'=> array('justification' => 'left'),
 
'2' => array('justification' => 'center'),
 
'3' => array('justification' => 'right'),
 
'4'=> array('justification' => 'right'),
 
'5' => array('justification' => 'right')) 
));
// sortida 
es decir, q el array cols 2 contenga este trocito para q ezTable lo acepte correctamente!
Cita:
'1' => array('justification' => 'left'),
'2' => array('justification' => 'center'),
'3' => array('justification' => 'right'),
'4' => array('justification' => 'right'),
'5' => array('justification' => 'right'))
Actualmente me lanza este error:

Cita:
Notice: Undefined index: persona in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 0 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 1 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 2 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 3 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 4 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 5 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 6 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 7 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 8 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695

Notice: Undefined offset: 9 in /var/www/arcadie/controlhores/control/class/class.ezpdf.php on line 695
Alguna ayudita?????

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 09/10/2008 a las 02:22
  #7 (permalink)  
Antiguo 09/10/2008, 02:32
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Modificar Array

Voy mejorando pero aun no doy con lo correcto:;
Código PHP:
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
            
$nreg_abs mysql_num_rows($sql_abs);
            
$i=1;
            
$cols2='';
            while(
$res_abs mysql_fetch_row($sql_abs)){
                if(
$nreg_abs == $i){
                    
$cols2 .= $res_abs['0']."=>array('justification' => 'left'))";                
                }else{
                    
$cols2 .= $res_abs['0']."=>array('justification' => 'left'),";                
                }
            
$i++;
            }
            echo 
"<pre>";
            
print_r($cols2);
            echo 
"</pre>";
            
$pdf->ezTable($data,$cols,'',array('fontSize'=>8
                          
'cols'=>array(  'persona'=> array('justification' => 'left'),
                          
$cols2)              
                        ));
//-- sortida                     
            
$pdf->ezText('',10); 
desa manera, Cols2 se me crea de forma correcta pero me sigue lanzando el error de antes.
el impreso de cols2 es el siguiente:
Cita:
12=>array('justification' => 'left'),
20=>array('justification' => 'left'),
21=>array('justification' => 'left'),
26=>array('justification' => 'left'),
28=>array('justification' => 'left'),
29=>array('justification' => 'left'),
30=>array('justification' => 'left'),
31=>array('justification' => 'left'),
32=>array('justification' => 'left'),
34=>array('justification' => 'left'))
MODIFICACiO: SOLUCION POR SI ALGUIEN LE INTERESA....

CODIGO COMPLETO : Crear un PDF con la clase R&OS - con cabeceras dinamicas

Código PHP:
<? 
require("../../../../aut_verifica.inc.php");
error_reporting(E_ALL); 
include(
'../../../class/class.ezpdf.php'); 
$pdf = & new Cezpdf('A4','landscape'); 
$pdf->selectFont('../../../class/fonts/Helvetica');
$pdf->ezStartPageNumbers(800,10,10,'','{PAGENUM} de {TOTALPAGENUM}',1); /**/
//-------------------------------------
//-- Variable per fer la clausula Where
$WHEREHAN        '';
$WHEREEMPRESA    '';
$ur             '';

if (isset(
$_GET['id_empresa']) && ($_GET['id_empresa'] > 0)){
    
$WHEREEMPRESA " WHERE id_empresa=$_GET[id_empresa]";
    
$ur          .= "&id_empresa=$_GET[id_empresa]";
}else{
    
$WHEREEMPRESA " WHERE id_empresa=1 or id_empresa=3";
}

if (isset(
$_GET['id_seccio']) && ($_GET['id_seccio'] > 0)){
    
$WHERESECCIO " AND hores= 1 AND id_seccio=$_GET[id_seccio]";
    
$ur         .= "&id_seccio=$_GET[id_seccio]";
}else{
    
$WHERESECCIO " AND hores = 1";
}

if (isset(
$_GET['cooperativa']) && ($_GET['cooperativa'] != 3)){
    
$WHEREHAN .= " AND cooperativa = $_GET[cooperativa]";
    
$ur       .= "&cooperativa=$_GET[cooperativa]";    
}

if (isset(
$_GET['desde'])){
    
$desde       = ($_GET['desde']);
    
$ur      .= "&desde=$desde";
}
if(isset(
$_GET['fins'])){
    
$fins      = ($_GET['fins']);
    
$ur      .= "&fins=$fins";
}

if(
$_GET['desde'] == $_GET['fins']){
    
$capcesetmana "Fecha ".$_GET['desde'];
}else{
    
$capcesetmana "Fecha Desde ".$_GET['desde']." - Hasta ".$_GET['fins'];
}
// --------------------------------------------------------------------------------- //
$data = array();

// -- Absencies entre dates --//
$str_abs  "SELECT DISTINCT h.id_tipoabsencia, tipoabsencia 
             FROM hores h,tipo_absencia ta 
             WHERE h.id_tipoabsencia != 0 AND ta.situacio = 0 AND festiu=0
             AND h.id_tipoabsencia = ta.id_tipoabsencia
             AND data >="
.$desde." AND data <=".$fins."
             GROUP BY h.id_tipoabsencia"
;
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
$nreg_abs mysql_num_rows($sql_abs);
// ---------------------------- //


// -- Busquem la empresa  ---- //
$str_empresa  "SELECT id_empresa,nom_empresa FROM empresa $WHEREEMPRESA 
                 ORDER BY id_empresa ASC"
;
$sql_empresa  mysql_query($str_empresa) or die("ERROR SQL EMPRESA: ".mysql_error());
$nreg_empresa mysql_num_rows($sql_empresa);
if(
$nreg_empresa != 0){
    while(
$res_empresa mysql_fetch_row($sql_empresa)){    
    
    
$idempresa     $res_empresa['0'];
    
$nomempresa     $res_empresa['1'];
    
/*
    echo $idempresa."<br>";
    */
    
$pdf->ezText($nomempresa,10,array('justification' => 'center'));
    
$pdf->ezText('',10);
    
    
    
$str_seccio  "SELECT id_seccio, nom_seccio 
                    FROM seccio WHERE id_empresa = "
.$res_empresa['0']."
                    $WHERESECCIO
                    ORDER BY nom_seccio ASC"
;
    
$sql_seccio  mysql_query($str_seccio) or die("ERROR SQL EMPRESA: ".mysql_error());
    
$nreg_seccio mysql_num_rows($sql_seccio);
        if(
$nreg_seccio != 0){
            while(
$res_secciomysql_fetch_row($sql_seccio)){        
            
//echo $WHEREHAN;
            
$str_hores_persona "SELECT p.id_persona,p.dni, p.nom, p.cognom1, p.cognom2, p.cooperativa
                                  FROM hores h INNER JOIN personal p
                                  ON h.id_persona = p.id_persona
                                  WHERE p.id_seccio="
.$res_seccio['0']." AND p.id_persona != '' 
                                  AND data >= "
.$desde." AND data <= ".$fins."  $WHEREHAN 
                                  GROUP BY p.dni ORDER BY p.id_seccio,p.dni"
;
            
/*
            echo $str_hores_persona."<br>";                      
            */
            
$sql_hores_persona  mysql_query($str_hores_persona) or die("Error en consulta 1: ".mysql_error());
            
$nreg_hores_persona mysql_num_rows($sql_hores_persona);
            
/*
            echo $nreg_hores_persona."<br>";
            */
            
if ($nreg_hores_persona != 0){
                
/**/
                //-- coloca una linia a dalt i baix a totes les pagines 
                
$all $pdf->openObject(); 
                
$pdf->saveState(); 
                
$pdf->setStrokeColor(0,0,0,1); 
                
$pdf->line(20,20,830,20); 
                
$pdf->line(20,575,830,575); 
                
$pdf->addText(20,580,10,'Horas Semanales por Seccion - Arcadíe España - '.$capcesetmana); 
                
$pdf->addText(750,580,10,'RRHH'); 
                
$pdf->addText(730,10,10,'Pagina'); 
                
$pdf->restoreState(); 
                
$pdf->closeObject(); 
                
//-- acaba les lineas 
                
$pdf->addObject($all,'all'); 
                
/**/
                
$cols='';
                
//-- Aqui es coloca la capçelera de la Taula -- //
                
$cols = array('persona'=> 'Persona'); 
                
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
                
$nreg_abs mysql_num_rows($sql_abs);
                
                
$cols2"'persona'=> array('justification' => 'left'),";
                while(
$res_abs mysql_fetch_row($sql_abs)){
                        
$u          $res_abs['0'];
                        
$cols[$u] = $res_abs['1'];                
                
                }                    
                
// ------------------------------------------- //    
                        
                /*
                echo "<pre>";
                print_r($cols);
                echo "</pre>";
                /**/
                
$p 0;
                while (
$res_hores_persona mysql_fetch_row($sql_hores_persona)) {
                
//nom de la persona
                
                
$nomcomplet $res_hores_persona['3']." ".$res_hores_persona['4'].", ".$res_hores_persona['2'];
                
$nomcomplet htmlentities($nomcomplet);
                    
                    
$data[$p] = array('persona' => $nomcomplet);
                    
                    
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
                    while(
$res_abs mysql_fetch_row($sql_abs)){    
                    
                        
$str_hores_abs "SELECT sum(absencia)
                                          FROM hores h INNER JOIN personal p
                                          ON h.id_persona = p.id_persona
                                          WHERE p.id_seccio="
.$res_seccio['0']." AND p.id_persona = ".$res_hores_persona['0']."
                                          AND id_tipoabsencia = "
.$res_abs['0']." AND data >= ".$desde." AND data <= ".$fins."
                                          GROUP BY p.dni,id_tipoabsencia"
;
                        
//echo $str_hores_abs."<br>";
                        
$sql_hores_abs  mysql_query($str_hores_abs)or die("Error SQL Horas Ausencia: ".mysql_error());
                        
$nreg_hores_abs mysql_num_rows($sql_hores_abs);    
                        if(
$nreg_hores_abs !=0){                              
                            
                            
$res_hores_abs     mysql_fetch_row($sql_hores_abs);
                            
$hores_abs         $res_hores_abs['0'];
                            
                        }else{
                        
                            
$hores_abs 0;
                            
                        }
                        
$u=$res_abs['0'];
                        
$data[$p][$u] = number_format($hores_abs,2,",",".");

                    }
// -- while($res_abs = mysql_fetch_row($sql_abs)){
                
$p++;
                }
// -- while ($res_hores_persona = mysql_fetch_row($sql_hores_persona)) {
            
}// -- if ($nreg_hores_persona != 0){
            /*
            echo "<pre>";
            print_r($data);
            echo "</pre>";
            /**/
            
$sql_abs  mysql_query($str_abs)or die("Error SQL Tipo Ausencia: ".mysql_error());
            
$nreg_abs mysql_num_rows($sql_abs);
            
$i=1;
            
$cols2"'persona'=> array('justification' => 'left'),"."<br>";
            while(
$res_abs mysql_fetch_row($sql_abs)){
                if(
$nreg_abs == $i){
                    
$cols2 .= "'".$res_abs['0']."'=>array('justification' => 'left'))";                
                }else{
                    
$cols2 .= "'".$res_abs['0']."'=>array('justification' => 'left'),";                
                }
            
$i++;
            }
            
/*
            echo "<pre>";
            print_r($cols2);
            echo "</pre>";
            /**/
            
$pdf->ezTable($data,$cols,'',array('fontSize'=>8'cols'=>array($cols2)              
                        ));
//-- sortida                     
            
$pdf->ezText('',10);
            
$data '';
            
$cols='';
            
$cols2='';
            }
// -- while($res_seccio= mysql_fetch_row($sql_seccio)){    
        
}// -- if($nreg_seccio != 0){
    
}// --    while($res_empresa = mysql_fetch_row($sql_empresa)){
}// --if($nreg_empresa != 0){
     
    





if (isset($d) && $d){ 
    
$pdfcode $pdf->ezOutput();  //-- Necessari xq funcioni ezStartPageNumbers 
    
$pdfcode str_replace('\n','\n<br>',htmlspecialchars($pdfcode)); 
    echo 
'<html><body>'
    echo 
trim($pdfcode); 
    echo 
'</body></html>'
} else { 
    
$pdf->ezStream();  //Necessari xq funcioni ezStartPageNumbers 
}
/*
echo "<pre>";
print_r($data);
echo "</pre>";
/**/
?>
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 09/10/2008 a las 03:39
  #8 (permalink)  
Antiguo 09/10/2008, 09:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Modificar Array

Mmmm
Código php:
Ver original
  1. $cols2 = array();
  2. while($res_abs = mysql_fetch_row($sql_abs)){
  3.        $cols2[$res_abs[0]] = array('justification' => 'left');  
  4. }
  5.  
  6. var_dump($cols2);

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 19:04.