Tengo un pequeño problema q es, cuando hago el while me deberia extraer todos los registros en mi base de datos y no lo hace..
Dos tablas
facturas y clientes donde facturas esta relacionada con el cliente segun cedula
un cliente ingresa facturas si y solo si esta registrado
es decir q pueden haber clientes sin facturas mas NO facturas sin clientes
pero la misma no me muestra el cliente si no tiene facturas... y me deberia mostrarlo
asi queda el codigo
Código PHP:
<?php require_once('../includes/sesion.php'); ?>
<?php
require('conexion.php');
$RegistrosAMostrar=30;
//estos valores los recibo por GET
if(isset($_GET['pag'])){
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
$PagAct=$_GET['pag'];
//caso contrario los iniciamos
}else{
$RegistrosAEmpezar=0;
$PagAct=1;
}
$sqlex="SELECT cedula, COUNT(*) AS total, SUM(monto) AS suma FROM factura GROUP BY cedula";
$sql_execex=mysql_query($sqlex) or die("Error en consulta: $sql_execex, error: ". mysql_error());
?>
<link href="../css/estilo.css" rel="stylesheet" type="text/css">
<SCRIPT LANGUAGE="JavaScript">
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=414,height=270,left = 512.5,top = 150');");
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style><title>Panel Administrativo</title><body onLoad="MM_preloadImages('images/volver2.jpg')"><table width="670" border="0" align="center">
<tr>
<td width="677"><img src="../images/header_admin.jpg" width="670" height="150" /></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><table width="640" border="1" align="center" bordercolor="#5B0206">
<tr>
<td width="120" bgcolor="#5B0206" class="textoBlanco"><div align="center">Nombre</div></td>
<td width="140" bgcolor="#5B0206" class="textoBlanco"><div align="center">Apellido</div></td>
<td width="152" bgcolor="#5B0206" class="textoBlanco"><div align="center">C.I. / RIF.</div></td>
<td width="59" bgcolor="#5B0206" class="textoBlanco"><div align="center">Facturas</div></td>
<td width="90" bgcolor="#5B0206" class="textoBlanco"><div align="center">Monto Total</div></td>
<td width="39" bgcolor="#5B0206" class="textoBlanco"><div align="center">Ficha</div></td>
</tr>
<tr><?php while($rowex=mysql_fetch_assoc($sql_execex))
{
$cedula = $rowex['cedula'];
if( empty( $cedula ) ) {
die( "no existe el registro: $cedula, datos: " . print_r( $rowex, true ) );
}
$Resultado="SELECT * FROM clientes WHERE cedula='$cedula' ORDER BY id ASC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar";
$sql_exec=mysql_query($Resultado) or die( "Error en consulta: $sqlexz, error: " . mysql_error());
while($datoscl = mysql_fetch_assoc($sql_exec))
{
?>
<td bgcolor="#FFFFFF" class="textoResto"><div align="center"><?php echo $datoscl['nombre']; ?></div></td>
<td bgcolor="#FFFFFF" class="textoResto"><div align="center"><?php echo $datoscl['apellido']; ?></div></td>
<td bgcolor="#FFFFFF" class="textoResto"><div align="center"><?php echo $datoscl['cedula']; ?></div></td>
<td bgcolor="#FFFFFF" class="textoResto"><div align="center"><?php echo $rowex['total']; ?></div></td>
<td bgcolor="#FFFFFF" class="textoResto"><div align="center"><span class="textoTitulos2"><strong>Bs.F</strong></span> <?php echo $rowex['suma']; ?></div></td>
<td bgcolor="#FFFFFF" class="textoResto"><div align="center">
<p><A HREF="javascript:popUp('ficha.php?cedula=<?php echo $datoscl['cedula']; ?>')"><img src="../images/ver.jpg" alt="Ver Ficha del cliente" width="20" height="20" border="0" /></A></p>
</div></td>
</tr><?php } } ?>
</table></td>
</tr>
<tr>
<td><span class="textoResto">
</span></td>
</tr>
<tr>
<td align="center"><span class="textoResto"><?php
//******--------determinar las páginas---------******//
$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM clientes",$con));
$PagAnt=$PagAct-1;
$PagSig=$PagAct+1;
$PagUlt=$NroRegistros/$RegistrosAMostrar;
//verificamos residuo para ver si llevará decimales
$Res=$NroRegistros%$RegistrosAMostrar;
// si hay residuo usamos funcion floor para que me
// devuelva la parte entera, SIN REDONDEAR, y le sumamos
// una unidad para obtener la ultima pagina
if($Res>0) $PagUlt=floor($PagUlt)+1;
//desplazamiento
echo "<a onclick=\"Pagina('1')\">Primero</a> ";
if($PagAct>1) echo "<a onclick=\"Pagina('$PagAnt')\">Anterior</a> ";
echo "<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
if($PagAct<$PagUlt) echo " <a onclick=\"Pagina('$PagSig')\">Siguiente</a> ";
echo "<a onclick=\"Pagina('$PagUlt')\"> Ultimo</a>";
?>
</span></td>
</tr>
<tr>
<td align="center"> </td>
</tr>
<tr>
<td align="right"><table width="500" border="0" cellspacing="3" cellpadding="0">
<tr>
<td width="50%" align="center"><a href="index.php" target="_self"></a></td>
<td width="50%" align="right"><a href="../index.php" target="_self"><img src="../images/volver1.jpg" name="Image1" width="57" height="11" border="0" id="Image1" onMouseOver="MM_swapImage('Image1','','../images/volver2.jpg',1)" onMouseOut="MM_swapImgRestore()" /></a></td>
</tr>
</table>
<div align="right"></div></td>
</tr>
</table>
<p> </p>