buen dia.
Amigos tengo un inconveniente con una aplicacion que estoy desarrollando con php y bd mysql....voy al grano:
tengo hecho una paginacion donde solo uso una sola tabla y la consulta la hago a traves de un campo de texto lo cierto es que me funciona perfecto pero ahora necesito hacer otra consulta usando varias tablas y ya no me funciona, este es el codigo que me funciona perfecto:
<?
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
$txt_criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = " where VecCodigo like '%" . $txt_criterio . "%' or VecCantidad like '%" . $txt_criterio . "%' or VecFecha like '%" . $txt_criterio . "%' or EntCodigo like '%" . $txt_criterio . "%' or VenCodigo like '%" . $txt_criterio . "%'";
}
$sql="SELECT * FROM elipsis_vencimientos" . $criterio;
$res=mysql_query($sql);
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)
{
echo "<div align='center'>";
echo "<font face='verdana' size='-2'>No se encontraron resultados</font>";
echo "</div>";
}else{
//////////elementos para el orden
if(!isset($orden))
{
$orden="VecCodigo";
}
//////////fin elementos de orden
//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=2;
//pagina actual si no esta definida y limites
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$pagina = $_GET["pagina"];
}
//calculo del limite inferior
$limitInf=($pagina-1)*$tamPag;
//calculo del numero de paginas
$numPags=ceil($numeroRegistros/$tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;
if($pagina<$numPags)
{
$final=$inicio+$tamPag-1;
}else{
$final=$numPags;
}
if ($final>$numPags){
$final=$numPags;
}
}
//////////fin de dicho calculo
//////////creacion de la consulta con limites
$sql="SELECT * FROM siscop.elipsis_vencimientos ".$criterio." ORDER BY ".$orden.",VecCodigo ASC LIMIT ".$limitInf.",".$tamPag;
$res=mysql_query($sql);
//////////fin consulta con limites
echo "<div align='center'>";
echo "<font face='verdana' size='-2'>encontrados ".$numeroRegistros." resultados<br>";
echo "ordenados por <b>".$orden."</b>";
if(isset($txt_criterio)){
echo "<br>Valor filtro: <b>".$txt_criterio."</b>";
}
echo "</font></div>";
echo "<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0'>";
echo "<tr><td colspan='3'><hr noshade></td></tr>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=VecCodigo&criterio=".$txt_criter io."'>Código</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=VecCantidad&criterio=".$txt_crit erio."'>Cant Vencimiento</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=VecFecha&criterio=".$txt_criteri o."'>Fecha Vencimiento</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=EntCodigo&criterio=".$txt_criter io."'>Cod Entidad</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=VenCodigo&criterio=".$txt_criter io."'>Cod Vencimiento</a></th>";
while($registro=mysql_fetch_array($res))
{
?>
<!-- tabla de resultados -->
<tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900'; this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o "];" onClick="javascript:muestra('<? echo "[".$registro["VecCodigo"]."] ".$registro["VecCantidad"]." - ".$registro["VecFecha"] ." - ".$registro["EntCodigo"]." - ".$registro["VenCodigo"] ; ?>');">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["VecCodigo"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["VecCantidad"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["VecFecha"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["EntCodigo"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["VenCodigo"]; ?></b></font></td>
</tr>
<!-- fin tabla resultados -->
<?
}//fin while
echo "</table>";
}//fin if
//////////a partir de aqui viene la paginacion
?>
<br>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td align="center" valign="top">
<?
if($pagina>1)
{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&criterio=".$txt_criterio."'> ";
echo "<font face='verdana' size='-2'>anterior</font>";
echo "</a> ";
}
for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font face='verdana' size='-2'><b>".$i."</b> </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&criterio=".$txt_ criterio."'>";
echo "<font face='verdana' size='-2'>".$i."</font></a> ";
}
}
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criteri o=".$txt_criterio."'>";
echo "<font face='verdana' size='-2'>siguiente</font></a>";
}
//////////fin de la paginacion
?>
y aca esta la consulta que usa varias tablas pero no se como hacer para que me funcione:
SELECT a.PLU, a.ProNombrComer, b.CatNombre, c.SubNombre, d.PrvNombre, e.VecFecha
FROM
elipsis_productos a, elipsis_categorias b, elipsis_subcategorias c, elipsis_proveedores d, elipsis_vencimientos e, elipsis_ventas, elipsis_prvproalm
WHERE
c.CatCodigo = b.CatCodigo AND a.SubCodigo = c.SubCodigo AND elipsis_ventas.VenCodigo = e.VenCodigo AND a.ProCodigo = elipsis_prvproalm.ProCodigo AND
elipsis_prvproalm.ProCodigo = elipsis_ventas.ProCodigo AND elipsis_prvproalm.PrvCodigo = d.PrvCodigo.
no se en que lugares ubicar el like '%" . $txt_criterio . "%' quizas sea por eso, de todas maneras recibo cualquier tipo de asesoria. muchas gracias por la atencion prestada.