Foros del Web » Programando para Internet » PHP »

Problema con array y ezpdfh

Estas en el tema de Problema con array y ezpdfh en el foro de PHP en Foros del Web. Buen día foro Estoy trabajando con php y mysql en la generación de una consulta dinamica para luego ser exportados los resultados a PDF. La ...
  #1 (permalink)  
Antiguo 12/07/2010, 09:02
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Problema con array y ezpdfh

Buen día foro

Estoy trabajando con php y mysql en la generación de una consulta dinamica para luego ser exportados los resultados a PDF. La consulta se genera bien pero al momento de interpretarla con el ezpdfh tengo un problema.

Código PHP:
Ver original
  1. $ixx = 0;
  2. while($datatmp = mysql_fetch_assoc($resEmp)) {
  3.     $ixx = $ixx+1;
  4.     $data[] = array_merge($datatmp, array('num'=>$ixx));
  5. }
Con este codigo lleno los datos que vienen de la consulta correctamente.
el array('num'=>$ixx) me lista el numero de registros que tiene.

Posterior a esto, debo generar un array con los títulos de encabezado en el que me he guiado por esta pagina

Entonces, según el manual los titulos deben ser de la siguiente forma
Código PHP:
Ver original
  1. $titles = array('num'=>'<b>Numero</b>', 'mes'=>'<b>Mes</b>');
Cuando lo construyo estático para cierto escenario
Código PHP:
Ver original
  1. $titles = array('num'=>'Numero','unidad'=>'unidad','propietarios'=>'propietarios','residentes'=>'residentes');
El programa me jala bien y me muestra correctamente los datos.

Pero cuando quiero hacer dinamico este array de titulos, solo me muestra los titulos y me esconde la información.
Código PHP:
Ver original
  1. $titles = array_merge(array('num'=>'Numero'),$array_con_mis_campos);

En un principio pensé que para la consulta era necesario recibir ese formato 'campo_base_de_datos'=>'Lo que quiero' por lo que traté de construir esta misma cadena para enviarsela al array de titulos, con tan mala suerte que me pone en los nombres de campos esta misma cadena generada.

De que forma puedo construir este array de títulos de forma dinámica y que no me esconda la información que ya tengo correctamente cargada en el array data?

Les agradezco mucho.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 12/07/2010 a las 09:09
  #2 (permalink)  
Antiguo 12/07/2010, 09:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con array y ezpdfh

Se supone que array_merge une el segundo array al final del primero. ¿Qué tienes en el variable $array_con_mis_campos?
Te doy un ejemplo simple de lo que debería hacer array_merge
Código PHP:
Ver original
  1. <?php
  2. $arr = array('foo'=>'bar');
  3. $arr2 = array('bar'=>'for');
  4. $arr3 = array_merge($arr, $arr2); //array(2) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "for" }
  5. foreach($arr3 as $key => $value){
  6.     echo $key . '=>' . $value . '<br />';
  7. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 12/07/2010, 10:32
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con array y ezpdfh

Gracias abimaelrc.

Realmente con el array_merge no tenía problema, era con la generación del array en el orden que lo requería en el ejemplo citado.

La solución que tuve, fue utilizar una asignación en el array diferente. Vi que es equivalente construir esto $unarray=array('algo'=>'algo') a esto $unarray['algo'] = 'algo'.

Asignandolos de esta forma con la ayuda de un for, me quedaron bien implementados.

Sin embargo, hablando del array_merge me quedó una duda con respecto al ejemplo. Cuando se está llenando el array data[] dentro del FOR el array 'num' => contador se pone como segundo parametro de la matriz de datos. pero cuando imprimo los datos, me sale el numero consecutivo en la primera posición. (Esa parte no la entendí) Mas abajo en $titles yo utilizo nuevamente el array_merge
$titles = array_merge(array('num'=>'NUMERO'),$interior_array );

Siendo num la primera posición también.

En pocas palabras, ya me funciona, pero no entendí por que dentro del for, num va como segundo parametro y no como primero.

saludos abimaelrc y nuevamente muchas gracias.
PD: Por fin pude darte nuevamente karma.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 12/07/2010, 10:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con array y ezpdfh

Podrías explicar la parte que dices como segundo parametro. Postea algún ejemplo para entenderte mejor.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 12/07/2010, 10:47
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con array y ezpdfh

Tal como sale en el ejemplo

Código PHP:
Ver original
  1. $ixx = 0;
  2. while($datatmp = mysql_fetch_assoc($resEmp)) {
  3.     $ixx = $ixx+1;
  4.     $data[] = array_merge($datatmp, array('num'=>$ixx));
  5. }
  6. $titles = array(
  7.                 'num'=>'<b>Num</b>',
  8.                 'nombre'=>'<b>Empresa</b>',
  9.                 'direccion'=>'<b>Direccion</b>',
  10.                 'telefono'=>'<b>Telefono</b>'
  11.             );

Dentro del while se hace uso del array_merge así
$data[] = array_merge($datatmp, array('num'=>$ixx));

concatenando el array de datos $datatmp y supuestamente poniendo al final array('num'=>$ixx). En el caso de $titles el array se construye así
Código PHP:
Ver original
  1. $titles = array(
  2.                 'num'=>'<b>Num</b>',
  3.                 'nombre'=>'<b>Empresa</b>',
  4.                 'direccion'=>'<b>Direccion</b>',
  5.                 'telefono'=>'<b>Telefono</b>'
  6.             );

teniendo a $num en la primera posición.

El ejemplo me funciona correctamente, pero si mi logica fuera cierta, en el while debería ser al reves.
$data[] = array_merge(array('num'=>$ixx),$datatmp);
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 12/07/2010, 11:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con array y ezpdfh

Bueno eso va a depender. Al ser array asociativos el segundo parámetro sobre-escribe el primero. Ejemplo
Código PHP:
Ver original
  1. <?php
  2. $arr = array('foo'=>'bar','baz'=>'candy');
  3. $arr2 = array_merge($arr,array('twix'=>'snickers'));
  4. $arr3 = array_merge($arr2,array('twix'=>'apple'));
  5. var_dump($arr3);
En ese caso la llave twix contiene un valor llamado apple que si estuviera al revés, es decir:
Código PHP:
Ver original
  1. <?php
  2. $arr = array('foo'=>'bar','baz'=>'candy');
  3. $arr2 = array_merge($arr,array('twix'=>'snickers'));
  4. $arr3 = array_merge(array('twix'=>'apple'),$arr2);
  5. var_dump($arr3);
En ese caso imprime en la llave twix y en el valor snickers. Tal vez por eso lo colocó como segundo, porque posiblemente quiera que sobre-escriba el valor en la llave asociativa num por el que desea. Si te fijas en el bucle tiene un valor que va a estar cambiando, por eso lo colocó en el segundo parámetro, para que así cambiara el valor que corresponde.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 12/07/2010, 12:07
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con array y ezpdfh

Convencido.

Muchas gracias abimaelrc
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: Ninguno
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 14:05.