Hola a todos, soy nuevo tanto en el foro como en PHP.
Estoy haciendo un portal de coches y tengo un problema con un codigo de paginacion que no me imprime los registros en las paginas siguientes (cuando pulso siguiente o el n°de pagina, se pierden los registros y me dice que no se encontraron resultados), es un codigo que he cogido de un foro, con el cual pretendo paginar registros segun unos parametros de busqueda, el codigo es el siguiente:
<?
include ("includes/config.php");
include ("includes/funciones.php");
$cnx = conectar ();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>paginación de resultados</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
<!--
a.p:link {
color: #0066FF;
text-decoration: none;
}
a.p:visited {
color: #0066FF;
text-decoration: none;
}
a.p:active {
color: #0066FF;
text-decoration: none;
}
a.p:hover {
color: #0066FF;
text-decoration: underline;
}
a.ord:link {
color: #000000;
text-decoration: none;
}
a.ord:visited {
color: #000000;
text-decoration: none;
}
a.ord:active {
color: #000000;
text-decoration: none;
}
a.ord:hover {
color: #000000;
text-decoration: underline;
}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<script language="JavaScript">
function muestra(queCosa)
{
alert(queCosa);
}
</script>
<div align="center"><strong><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Paginación
de Resultados de una consulta SQL (sobre MySQL)<br><br><p><a href="http://www.pclandia.com"></a></p>
</font></strong> </div>
<hr noshade style="color:CC6666;height:1px">
<br>
<?
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
$param = "";
if ($_POST["marque"] != "null"){
$criterio.= 'idmarque = "' . $_POST["marque"] . '" ';
$param.= 'idmarque="' . $_POST["marque"] . '"';}
if ($_POST["modele"] != "null"){
$criterio.= 'AND idmodele = "' . $_POST["modele"] . '" ';
$param.= '&idmodele="' . $_POST["modele"] . '"';}
if ($_POST["deAn"] != "null"){
$criterio.= 'AND annee >= "' . $_POST["deAn"] . '" ';
$param.= '&annee="' . $_POST["deAn"] . '"';}
if ($_POST["jusqueAn"] != "null"){
$criterio.= 'AND annee <= "' . $_POST["jusqueAn"] . '" ';}
if ($_POST["carburant"] != "null"){
$criterio.= 'AND carburant = "' . $_POST["carburant"] . '" ';
$param.= '&carburant="' . $_POST["carburant"] . '"';}
if ($_POST["type"] != "null"){
$criterio.= 'AND type = "' . $_POST["type"] . '" ';
$param.= '&type="' . $_POST["type"] . '"';}
if ($_POST["deKil"] != "null"){
$criterio.= 'AND kilometrage >= "' . $_POST["deKil"] . '" ';
$param.= '&kilometrage="' . $_POST["deKil"] . '"';}
if ($_POST["jusqueKil"] != "null"){
$criterio.= 'AND kilometrage <= "' . $_POST["jusqueKil"] . '" ';}
if ($_POST["dePrix"] != "null"){
$criterio.= 'AND prix >= "' . $_POST["dePrix"] . '" ';
$param.= '&prix="' . $_POST["dePrix"] . '"';}
if ($_POST["jusquePrix"] != "null"){
$criterio.= 'AND prix <= "' . $_POST["jusquePrix"] . '" ';}
if ($_POST["wilaya"] != "null"){
$criterio.= 'AND wilaya = "' . $_POST["wilaya"] . '" ';
$param.= '&wilaya="' . $_POST["wilaya"] . '"';}
////////////////////////////////////////////////////////////////////////////
$sql="SELECT * FROM temporal WHERE ".$criterio;
$res=mysql_query($sql)or die(mysql_error());;
$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="prix";
}
//////////fin elementos de orden
//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=5;
//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 temporal WHERE ".$criterio." ORDER BY ".$orden.",id ASC LIMIT ".$limitInf.",".$tamPag;
$res=mysql_query($sql)or die(mysql_error());
//////////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 href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=marque&id=".$criterio."'>Mar que</a></th>";
echo "<th bgcolor='#CCCCCC'><a href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=modele&criterio=".$criterio."'>M odele</a></th>";
echo "<th bgcolor='#CCCCCC'><a href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=wilaya&criterio=".$criterio."'>W ilaya</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["id"]."] ".$registro["marque"]." - ".$registro["modele"]; ?>');">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["idmarque"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["idmodele"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["wilaya"]; ?></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."&".$param."'>";
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."&".$param."'>" ;
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."&".$para m."'>";
echo "<font face='verdana' size='-2'>siguiente</font></a>";
}
//////////fin de la paginacion
?>
</td></tr>
</table>
<hr noshade style="color:CC6666;height:1px">
<div align="center"><font face="verdana" size="-2"><a class="p" href="index.php">::Inicio::</a></font></div>
<form action="pruebaPaginacion6.php" method="get">
Criterio de búsqueda:
<input type="text" name="criterio" size="22" maxlength="150">
<input type="submit" value="Buscar">
</form>
</body>
</html>
<?
mysql_close();
?>