Hola a todos! Estoy armando n buscador con paginador de resultados y de las pruebas que hice me muestra solo los primeros 16 resultados pero el paginador no aparece. Les muestro el código:
Código PHP:
<?php
// verificamos que se haya enviado una consulta
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
$txt_criterio = htmlspecialchars($_GET['txt_criterio']);
//CUENTA EL NUMERO DE PALABRAS
$trozos=explode(" ",$txt_criterio);
$numero=count($trozos);
//////////elementos para el orden
if(!isset($orden))
{
$orden="cod_articulo";
}
//////////fin elementos de orden
//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=10;
$tamPag2=16;
//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;
}
}
if ($numero==1) {
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
$sql="SELECT * FROM producto
WHERE categoria LIKE '%$txt_criterio%'
OR linea LIKE '%$txt_criterio%'
OR descripcion LIKE '%$txt_criterio%'
ORDER BY producto.".$orden.",producto.cod_articulo LIMIT $limitInf, $tamPag2";
} elseif ($numero>1) {
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
//busqueda de frases con mas de una palabra y un algoritmo especializado
$sql="SELECT * , MATCH (categoria,linea,descripcion) AGAINST ('$txt_criterio' IN BOOLEAN MODE) AS coincidencias
FROM producto
WHERE MATCH (categoria,linea,descripcion) AGAINST ('$txt_criterio' IN BOOLEAN MODE)
ORDER BY coincidencias, producto.".$orden.",producto.cod_articulo DESC LIMIT $limitInf, $tamPag2";
}
$res = mysql_query($sql) or die (mysql_error());
$numeroRegistros = mysql_num_rows($res) or die (mysql_error());
//$numeroRegistros = mysql_fetch_object($res);
}
if($numeroRegistros<=0)
{
echo "No se encontraron datos cargados";
} else {
while($registro=mysql_fetch_array($res))
{
//muestro los resultados
.......
?>
<div id="txtPaginador11b" class="txtPaginador11b">
<?php
if($pagina>1)
{
echo "<a class='txtPaginador11b' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&buscar=".$txt_criterio."'>";
echo "<class='txtPaginador11b'><< ANTERIOR</font>";
echo "</a> ";
}
for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<class='txtPaginador11b'><b>".$i." </b>";
}else{
echo "<a class='txtPaginador11b' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&buscar=".$txt_criterio."'>";
echo "<class='txtPaginador11b'>".$i."</a> ";
}
}
if($pagina<$numPags)
{
echo " <a class='txtPaginador11b' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&buscar=".$txt_criterio."'>";
echo "<class='txtPaginador11b'>SIGUIENTE >></a>";
}
// Cierro la conexion
mysql_close($conexion);
?>
</div>
¿Me podrían decir por que no me aparece el paginador debajo de los resultados?
Muchas gracias y saludos-
Marx.