Buenas foro
Tengo un problema al mostrar los datos de una consulta, probandola en phpMyAdmin funciona correctamente pero al generarla en php no funciona esto es lo que tengo:
Código PHP:
Ver original$opciones=array(
'desde'=>$_GET['desde'],
'hasta'=>$_GET['hasta'],
'cliente'=>$_GET['cliente'],
'asociado'=>$_REQUEST['asociado'],
'status'=>$_REQUEST['status']
);
<table width="100%" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th>Folio</th>
<th>Fecha</th>
<th>Cliente</th>
<th>Asociado</th>
<th>Subtotal</th>
<th>Impuestos</th>
<th>Total</th>
<th>Status</th>
</tr>
</thead>
<?php
if($filtrado=$reportes->clientes($opciones,$RegistrosAEmpezar,$RegistrosAMostrar)):
foreach($filtrado as $filtro): ?>
<tbody>
<tr>
<td><?php echo $filtro->folio; ?></td>
<td><?php echo $filtro->fecha; ?></td>
<td><?php echo $filtro->cliente; ?></td>
<td><?php echo $filtro->nombreAsociado; ?></td>
<td>
<?php echo "$ ".number_format($filtro->subtotaFactura,2,'.',','); ?></td>
<td>
<?php echo "$ ".number_format($filtro->ivaFactura,2,'.',','); ?></td>
<td>
<?php echo "$ ".number_format($filtro->totalFactura,2,'.',','); ?></td>
<td><?php echo $filtro->status; ?></td>
</tr>
</tbody>
<?php endforeach;
else:
var_dump($reportes->clientes($opciones,$RegistrosAEmpezar,$RegistrosAMostrar)); endif; ?>
<tfoot>
<tr>
<td colspan="6"> </td>
<td></td>
</tr>
</tfoot>
</table>
Y estas son las funciones:
Código PHP:
Ver originalpublic function clientes($opciones,$RegistrosAEmpezar,$RegistrosAMostrar){
$where=$this->datosFiltro($opciones);
$query="SELECT c.cliente,f.folio,f.fecha,f.subtotaFactura,f.ivaFactura,f.totalFactura,a.nombreAsociado,f.status
SUM(CASE WHEN MONTH( f.fecha ) = 1 THEN totalFactura ELSE 0 END) AS Enero,
SUM(CASE WHEN MONTH( f.fecha ) = 2 THEN totalFactura ELSE 0 END) AS Febrero,
SUM(CASE WHEN MONTH( f.fecha ) = 3 THEN totalFactura ELSE 0 END) AS Marzo,
SUM(CASE WHEN MONTH( f.fecha ) = 4 THEN totalFactura ELSE 0 END) AS Abril,
SUM(CASE WHEN MONTH( f.fecha ) = 5 THEN totalFactura ELSE 0 END) AS Marzo,
SUM(CASE WHEN MONTH( f.fecha ) = 6 THEN totalFactura ELSE 0 END) AS Junio,
SUM(CASE WHEN MONTH( f.fecha ) = 7 THEN totalFactura ELSE 0 END) AS Julio,
SUM(CASE WHEN MONTH( f.fecha ) = 8 THEN totalFactura ELSE 0 END) AS Agosto,
SUM(CASE WHEN MONTH( f.fecha ) = 9 THEN totalFactura ELSE 0 END) AS Septiembre,
SUM(CASE WHEN MONTH( f.fecha ) = 10 THEN totalFactura ELSE 0 END) AS Octubre,
SUM(CASE WHEN MONTH( f.fecha ) = 11 THEN totalFactura ELSE 0 END) AS Noviembre,
SUM(CASE WHEN MONTH( f.fecha ) = 12 THEN totalFactura ELSE 0 END) AS Diciembre,
SUM( f.totalFactura ) AS totalgral
FROM factura AS f JOIN cliente AS c ON f.clienteID = c.clienteID JOIN asociado AS a ON c.asociadoID=a.asociadoID ".$where." GROUP BY c.cliente WITH ROLLUP LIMIT $RegistrosAEmpezar, $RegistrosAMostrar";
}
public function datosFiltro($opciones){
$q = "";
$bandera = true;
if(isset($opciones['desde']) && $opciones['desde'] != '' && isset($opciones['hasta']) && $opciones['hasta'] != ''): $q .= ($bandera)?" WHERE f.fecha BETWEEN '".$opciones['desde']."' AND '".$opciones['hasta']."'" : " AND f.fecha BETWEEN '".$opciones['desde']."' AND '".$opciones['hasta']."'";
$bandera = false;
endif;
if(isset($opciones['cliente']) && $opciones['cliente'] != ''): $q .= ($bandera)?" WHERE c.cliente = '".$opciones['cliente']."'" : " AND c.cliente = '".$opciones['cliente']."'" ;
$bandera = false;
endif;
if(isset($opciones['asociado']) && $opciones['asociado'] != ''): $q .= ($bandera)?" WHERE a.asociadoID = '".$opciones['asociado']."'" : " AND a.asociadoID = '".$opciones['asociado']."'" ;
$bandera = false;
endif;
if(isset($opciones['status']) && $opciones['status'] != ''): $q .= ($bandera)?" WHERE f.status = '".$opciones['status']."'" : " AND f.status = '".$opciones['status']."'" ;
$bandera = false;
endif;
return $q;
}
De antemano muchas gracias...