PHP - No me funciona correctamente la paginacion!!

 
Vista:

No me funciona correctamente la paginacion!!

Publicado por Baltasar (1 intervención) el 19/02/2009 22:52:51
Wenas amigos del mundillo del php, necesito ayuda como el comer, estoy realizando un proyecto de una tienda, y no se que coño pasa con la pagiancion, explico de que va mi web,

Es una tienda de productos es decri de juegos, tengo un menu con diferenets consolas wii, 360, ps3..., yo keiro ke al pinchar en wii solo me muestr los productos de wii, si pinxo en 360 de la 360 y asin con todos, pues vale eso me lo hace bien, me los separa uno de otros, pero claro si por ejmeplo yo le pongo de tamaño de pagina es decir que me muestre opr panatala los productos de 3 en 3 y si de wii solo tengo dos juegos no me debe de salir debajo de los productos los nuemritos para pasar de pagina, porque solo hay dos!!!

no se si me explico bien, pero osea, resumeindo que si solo hay dos productos de una categoria en la bd, no me debe de mostrar para pasar pagina . esto es por el criterio o lo que sea que no esta bien, y por eos no me corta el limtie o algo, es un lio no se como explicarlo bien, os dejo el codigo el problema esta en algunas de las dos sentencia select, dejo el codigo:

//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
$txt_criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = "where foto like '%" . $txt_criterio . "%' or nombre_juego like '%" . $txt_criterio . "%' or precio like '%" . $txt_criterio . "%' id_sistema=$id_sistema '%".$txt_criterio;
}

$sql="SELECT * FROM $tabla2".$criterio;
$res=mysql_query($sql);
$numeroRegistros=mysql_num_rows($res);

if($numeroRegistros<=0)
{

echo "<font face='verdana' size='-2'>No se encontraron resultados</font>";

}else
{
//////////elementos para el orden
if(!isset($orden))
{
$orden="id_juego";
}
//////////fin elementos de orden

//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=3;

//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{

//se supone declarada ya la variable pagina
// conocemos cual es el registro de inicio y fin para esa pagina

$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 $tabla2".$criterio." ORDER BY ".$orden.", id_juego ASC LIMIT ".$limitInf.",".$tamPag;

$res=mysql_query($sql);
//////////fin consulta con limites



while($registro=mysql_fetch_array($res))
{
$enlace = "listar_detalles_productos.php"."?id=".$registro["id_juego"];

?>
<br>
<!-- tabla de resultados -->

<table border=0 align=center>
<tr>
<td><center><img src=./imagenes/<? printf($registro["foto"]);?> width=150;></td>
</tr>

<tr>
<td><center><font size="2" face="Verdana, Arial, Helvetica, sans-serif" ><b><? printf ("<a href=%s>%s</a>", $enlace, $registro['nombre_juego']); ?></b></font></td>
</tr>

<tr>
<td><center><font size="2" face="Verdana, Arial, Helvetica, sans-serif" ><b><? printf ("<a href=%s>%s</a>", $enlace, $registro['precio']); ?></b></font></td>

</tr>
<!-- fin tabla resultados -->
</table>

<?
}

//fin while
echo "</table>";
}//fin if
//////////a partir de aqui viene la paginacion
?>

<table 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."&criterio=".$txt_criterio."'>";
echo "<font face='verdana' size='-2'>siguiente</font></a>";
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder