Estoy haciendo una búsqueda que me funciona, pero a la hora de paginar los resultados tengo un problema, envio los datos por medio de un formulario y utilizando el método post. El problema es que cuando paso a la segunda página me sale 0 resultados.
Y si lo hago agregando las variables directo en el código la paginación si me funciona perfectamente.
Este es mi formulario
Código HTML:
<form action="pages/bus2.php" method="POST" class="search"> <fieldset> <label><h2>¿Que Busca?</span></h2></label> <input name="busqueda" type="text" class="form" id="atributo" size="60" value="<?php echo $busqueda; ?>" style="height:30px; font-size:14px" /> <input name="codigo_provincia" type="text" class="form" id="atributo" value="<?php echo $codigo_provincia; ?>" size="60" style="height:30px; font-size:14px" /> </fieldset> <input type="submit" value="Buscar" style="height:36px;"> </form>
Código PHP:
<?php
include ("../config/bdclases.php");
@mysql_select_db("db", $link);
//$busqueda = "cria";
//$cod_provincia = 8;
$busqueda = $_POST['busqueda'];
$cod_provincia = $_POST['codigo_provincia'];
// maximo por pagina
$limit = 3;
// pagina pedida
$pag = (int) $_GET["pag"];
if ($pag < 1)
{
$pag = 1;
}
$offset = ($pag-1) * $limit;
$busqueda = $busqueda;
$cod_provincia = $cod_provincia;
if ($busqueda<>'') {
//CUENTA EL NUMERO DE PALABRAS
$trozos=explode(" ",$busqueda);
$numero=count($trozos);
if ($numero==1) {
$sql = "SELECT SQL_CALC_FOUND_ROWS empresa.razon_social, empresa.descrip_actividad, empresa.calle, empresa.telefono_emp, provincias.provincia, distritos.distrito
FROM empresa inner join provincias on empresa.provincia=provincias.cod_provincia
INNER join distritos on empresa.distrito=distritos.cod_distrito
WHERE (empresa.razon_social LIKE '$busqueda%' OR empresa.descrip_actividad LIKE '$busqueda%') and empresa.provincia=$cod_provincia limit $offset, $limit";
$sqlTotal = "SELECT FOUND_ROWS() as total";
}
elseif ($numero>1) {
$cadbusca= "SELECT SQL_CALC_FOUND_ROWS empresa.empresa, empresa.descrip_act, empresa.calle, empresa.tel1, provincias.provincia, distritos.distrito,
MATCH ( empresa, descrip_act )
AGAINST ( '$busqueda%' ) FROM empresa inner join provincias on empresa.provincia=provincias.cod_provincia
INNER join distritos on empresa.distrito=distritos.cod_distrito WHERE
MATCH ( empresa, descrip_act ) AGAINST ( '$busqueda%' ) and empresa.provincia=8 limit 50";
}
}
$rs = mysql_query($sql);
$rsTotal = mysql_query($sqlTotal);
$rowTotal = @mysql_fetch_assoc($rsTotal);
//Total de registros sin limit
$total = $rowTotal["total"];
while ($row = @mysql_fetch_assoc($rs)) {
$url = $row ["id"];
$referencia = $row ["empresa"];
$direccion = $row["calle"];
$provincia = $row["provincia"];
$distrito = $row["distrito"];
$titulo = $row["descrip_act"];
$tel = $row ["tel1"];
echo "<span>".$referencia."</span>"."<br />".$titulo."<br>".$provincia.", ". $distrito."<br />"."Calle: ".$direccion."<br />"."Teléfono: ".$tel."<hr>";
}
?>
<?php
$totalPag = ceil($total/$limit);
echo "total de pages".$totalPag;
$links = array();
echo "<a title='Start' href='bus2.php?pag=1'>< < Inicio</a> ";//Start
if ($pag>1) echo "</a><a title='Previous' href='bus2.php?pag=".($pag-1)."'> < < Previous </a> "; //Previous
for ($i=1; $i<=$totalPag; $i++){
if ($pagina == $i) {
echo "<b>".$pagina."</b> ";
} else {
echo "<a href='bus2.php?pag=$i'>$i</a> ";
} }
if (($pag+$limit)< $totalPag) echo "..."; //etcetera...
if ($pag<$totalPag) echo "<a title='Siguiente' href='bus2.php?pag=".($pag+1)."'> Next >> ";//Next
echo "<a title='End' href='bus2.php?pag=$totalPag'>Ultima >></a>";//end*/
echo implode(" - ", $links);
?>
Saludos,