Foros del Web » Programando para Internet » PHP »

repetri filas con Mpdf

Estas en el tema de repetri filas con Mpdf en el foro de PHP en Foros del Web. Buenas tardes; No sé como repetir filas en una tabla utilizando Mpdf. A ver si alguine me puede hechar una mano. Esta es la tabla ...
  #1 (permalink)  
Antiguo 17/11/2012, 15:06
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 13 años, 3 meses
Puntos: 5
repetri filas con Mpdf

Buenas tardes;
No sé como repetir filas en una tabla utilizando Mpdf. A ver si alguine me puede hechar una mano.

Esta es la tabla que he creado y lo que necesito es repetir tantas veces como registros existan.

Código PHP:
$mpdf=new mPDF('utf-8','A4'); 
$mpdf->SetHTMLHeader('<div style="text-align: right; font-weight: bold;">'.$escopia.'</div>');
$mpdf->WriteHTML('
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
<!--

.pedido {
    font-size: 14px;
}
.tabla_abajo{
    border-bottom-width: 2px;
    border-bottom-style: solid;
    border-bottom-color: #333;
}
.fondo {
    background-color: #CCC;
}
-->
</style>
</head>

<body>
<table width="800" border="0" class="tabla_abajo">
 <tr>
  <td width="34%"><img src="imagenes/logopeque.jpg" width="150" height="96" /></td>
  <td width="33%">&nbsp;</td>
  <td width="33%" valign="top">
  '
$row_finaliza['nombre'].' '.$row_finaliza['apellidos'].' <br />
  '
$row_finaliza['nif'].'<br />
  '
$row_finaliza['direccion'].'<br />
  '
.$row_finaliza['cp'].' - '.$row_finaliza['localidad'].'<br />
  '
.$row_finaliza['provincia'].'<br />
  '
.$row_finaliza['telefono'].'<br /></td>
 </tr>
 <tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td valign="top">&nbsp;</td>
 </tr>
</table>
<table width="800" border="0" class="fondo tabla_abajo">
 <tr >
  <td width="0" height="0">Ticket: '
.$row_finaliza['ticket'].'</td>
  <td width="0" height="0">Fecha: '
.$row_finaliza['fechaalbaran'].'</td>
  <td width="0" height="0">Trasnporte: '
.$row_finaliza['trasnporte'].'</td>
 </tr>
</table>
<table width="800" border="0" class="tabla_abajo">
 <tr>
  <td width="64">Articulo</td>
  <td width="456">Descrioción</td>
  <td width="66" align="center">Cantidad</td>
  <td width="89" align="center">Precio </td>
  <td width="103" align="center">Total</td>
 </tr>
 while ($row_compra = mysql_fetch_assoc($compra)) {
    <tr>
   <td>'
.$row_compra['elidarticulo'].'</td>
   <td>'
.$row_compra['articulo_ca'].' </td>
   <td align="center">'
.$row_compra['cantidad_ca'].'</td>
   <td align="right">'
.$row_compra['precio_ca'].' €</td>
   <td align="right">'
.$row_compra['total_ca'].' €</td>
  </tr>
 }
</table>
<table width="800" border="0">
 <tr>
  <td>&nbsp;</td>
  <td>Portes </td>
  <td align="right">10.00 €</td>
 </tr>
 <tr>
  <td width="530">&nbsp;</td>
  <td width="153">Total IVA inluido</td>
  <td width="103" align="right">'
.$row_compra1['totales1'].'+10.00 €</td>
 </tr>
</table>
<p>&nbsp;</p>
</body>
</html>

'
);
$mpdf->SetHTMLFooter('
<table width="650" style="vertical-align: bottom; font-family: serif; font-size: 8pt; color: #000000; font-weight: bold; font-style: italic;"><tr>
<td width="33%"><span style="font-weight: bold; font-style: italic;">{DATE j-m-Y}</span></td>
<td width="33%" align="center" style="font-weight: bold; font-style: italic;">{PAGENO}/{nbpg}</td>
<td width="33%" style="text-align: right; ">http://www.distribuidoraexclusive.com</td>
</tr></table>
'
);
$mpdf->Output('pdf/'.$_GET['id'].'.pdf''F'); 
Supongo que el WHILE no se pone así, pero no se como hacerlo para que me repita la fila, y me cree el PDF con todos los datos.
Ahora solo me imprime solo el primer registro. pero no los demas.
Gracias por vuestra antención
  #2 (permalink)  
Antiguo 17/11/2012, 15:43
Avatar de JJrb3  
Fecha de Ingreso: septiembre-2010
Mensajes: 51
Antigüedad: 10 años, 7 meses
Puntos: 2
Respuesta: repetri filas con Mpdf

Bueno, creo que el problema es porque el While lo tienes dentro de lo que generaras. Por eso no te carga todo. Tendrias que hacerlo antes y asignar el resultado a una variable que sera la que publicaras.

Código PHP:
while ($row_compra mysql_fetch_assoc($compra)) {
   
$Result .= '<tr>';
   
$Result .= '<td>'.$row_compra['elidarticulo'].'</td>';
   
$Result .= '<td>'.$row_compra['articulo_ca'].' </td>';
   
$Result .= '<td align="center">'.$row_compra['cantidad_ca'].'</td>';
   
$Result .= '<td align="right">'.$row_compra['precio_ca'].' €</td>';
   
$Result .= '<td align="right">'.$row_compra['total_ca'].' €</td>';
   
$Result .= '</tr>';
 }

$mpdf=new mPDF('utf-8','A4'); 
$mpdf->SetHTMLHeader('<div style="text-align: right; font-weight: bold;">'.$escopia.'</div>');
$mpdf->WriteHTML('
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
<!--

.pedido {
    font-size: 14px;
}
.tabla_abajo{
    border-bottom-width: 2px;
    border-bottom-style: solid;
    border-bottom-color: #333;
}
.fondo {
    background-color: #CCC;
}
-->
</style>
</head>

<body>
<table width="800" border="0" class="tabla_abajo">
 <tr>
  <td width="34%"><img src="imagenes/logopeque.jpg" width="150" height="96" /></td>
  <td width="33%">&nbsp;</td>
  <td width="33%" valign="top">
  '
$row_finaliza['nombre'].' '.$row_finaliza['apellidos'].' <br />
  '
$row_finaliza['nif'].'<br />
  '
$row_finaliza['direccion'].'<br />
  '
.$row_finaliza['cp'].' - '.$row_finaliza['localidad'].'<br />
  '
.$row_finaliza['provincia'].'<br />
  '
.$row_finaliza['telefono'].'<br /></td>
 </tr>
 <tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td valign="top">&nbsp;</td>
 </tr>
</table>
<table width="800" border="0" class="fondo tabla_abajo">
 <tr >
  <td width="0" height="0">Ticket: '
.$row_finaliza['ticket'].'</td>
  <td width="0" height="0">Fecha: '
.$row_finaliza['fechaalbaran'].'</td>
  <td width="0" height="0">Trasnporte: '
.$row_finaliza['trasnporte'].'</td>
 </tr>
</table>
<table width="800" border="0" class="tabla_abajo">
 <tr>
  <td width="64">Articulo</td>
  <td width="456">Descrioción</td>
  <td width="66" align="center">Cantidad</td>
  <td width="89" align="center">Precio </td>
  <td width="103" align="center">Total</td>
 </tr>'
.$Result.'
</table>
<table width="800" border="0">
 <tr>
  <td>&nbsp;</td>
  <td>Portes </td>
  <td align="right">10.00 €</td>
 </tr>
 <tr>
  <td width="530">&nbsp;</td>
  <td width="153">Total IVA inluido</td>
  <td width="103" align="right">'
.$row_compra1['totales1'].'+10.00 €</td>
 </tr>
</table>
<p>&nbsp;</p>
</body>
</html>

'
);
$mpdf->SetHTMLFooter('
<table width="650" style="vertical-align: bottom; font-family: serif; font-size: 8pt; color: #000000; font-weight: bold; font-style: italic;"><tr>
<td width="33%"><span style="font-weight: bold; font-style: italic;">{DATE j-m-Y}</span></td>
<td width="33%" align="center" style="font-weight: bold; font-style: italic;">{PAGENO}/{nbpg}</td>
<td width="33%" style="text-align: right; ">http://www.distribuidoraexclusive.com</td>
</tr></table>
'
);
$mpdf->Output('pdf/'.$_GET['id'].'.pdf''F'); 
Aqui asigno lel resultado la la variable $Result y luego la concateno en el HTML que se publicara. Espero que te sirva.
  #3 (permalink)  
Antiguo 17/11/2012, 16:20
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: repetri filas con Mpdf

Gracias JJrb3, pero no me funciona. me sigue saliendo solo 1 registro.
  #4 (permalink)  
Antiguo 17/11/2012, 16:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: repetri filas con Mpdf

OK, ya sale. muchas gracias por tu ayuda.

Etiquetas: filas, html, mpdf, mysql, registro, tabla
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 16:19.