error tonto con la busqueda pero ¿donde?
Hola, vereis estoy teniendo problemas y no encuentro la solucion, seguro que es un problema de lo mas tonto pero no lo localizo, cuando consulto la base de datos para que me muestre todos los registros funciona todo perfectamente, el problema surge cuando en otro formulario repito las mismas acciones pero para una busqueda, lo que hace el código es mostrarme el primer registro que ha encontrado, pero los siguientes que encuentra sale el botón de ir al siguiente registro pero sin embargo al darle se queda la pantalla en blanco y no se por qué ocurre esto. Espero que me podais iluminar un poco, gracias, os pongo el código (omito las cajas de texto donde se visualizan los resultados)
$sql = "SELECT * FROM informacion WHERE ".$busqueda_seleccion." LIKE '%".$busqueda_informacion."%'";
$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{
if(!isset($orden))
{
$orden="identificacion";
}
$tamPag=1;
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$pagina = $_GET["pagina"];
}
}
$limitInf=($pagina-1)*$tamPag;
$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;
}
}
$sql = "SELECT * FROM informacion WHERE ".$busqueda_seleccion." LIKE '%".$busqueda_informacion."%' ORDER BY ".$busqueda_seleccion.",identificacion ASC LIMIT ".$limitInf.",".$tamPag ;
$res=mysql_query($sql);
echo "</font></div>";
while($registro=mysql_fetch_array($res))
{
?>
______________________________________________________________
AQUI SE MUESTRAN LOS RESULTADOS
______________________________________________________________
<?
}
if($pagina>1)
{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."'>";
echo "<img src='../../../Imagenes/Otras/btn_ant.gif' width='40' height='40' border='0'></a>";
}
?>
</div></td>
<td><div align="center">
<?
for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font face='verdana' size='-1'><b>Registro ".$i."</b> </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."'>";
echo "<font face='verdana' size='-1'> Registro ".$i."</font></a> ";
}
}
?>
</div></td>
<td><div align="right">
<?
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."'>";
echo "<img src='../../../Imagenes/Otras/btn_sig.gif' width='40' height='40' border='0'></a>";
}
?>
$sql = "SELECT * FROM informacion WHERE ".$busqueda_seleccion." LIKE '%".$busqueda_informacion."%'";
$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{
if(!isset($orden))
{
$orden="identificacion";
}
$tamPag=1;
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$pagina = $_GET["pagina"];
}
}
$limitInf=($pagina-1)*$tamPag;
$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;
}
}
$sql = "SELECT * FROM informacion WHERE ".$busqueda_seleccion." LIKE '%".$busqueda_informacion."%' ORDER BY ".$busqueda_seleccion.",identificacion ASC LIMIT ".$limitInf.",".$tamPag ;
$res=mysql_query($sql);
echo "</font></div>";
while($registro=mysql_fetch_array($res))
{
?>
______________________________________________________________
AQUI SE MUESTRAN LOS RESULTADOS
______________________________________________________________
<?
}
if($pagina>1)
{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."'>";
echo "<img src='../../../Imagenes/Otras/btn_ant.gif' width='40' height='40' border='0'></a>";
}
?>
</div></td>
<td><div align="center">
<?
for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font face='verdana' size='-1'><b>Registro ".$i."</b> </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."'>";
echo "<font face='verdana' size='-1'> Registro ".$i."</font></a> ";
}
}
?>
</div></td>
<td><div align="right">
<?
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."'>";
echo "<img src='../../../Imagenes/Otras/btn_sig.gif' width='40' height='40' border='0'></a>";
}
?>
Ya conseguà resolver el problema, resulta que al cambiar de página no se estaban mandando los valores de las variables. por si a alguien le nteresa el problema se resuelve asÃ:
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&sel=".$sel."&inf=".$inf."'>";
echo "<font face='verdana' size='-1'> Registro ".$i."</font></a> ";
PD: cambié el nombre de la variable que recogÃa los valores, antes era busqueda_seleccion y busqueda_informacion, y ahora puse sel e inf.
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&sel=".$sel."&inf=".$inf."'>";
echo "<font face='verdana' size='-1'> Registro ".$i."</font></a> ";
PD: cambié el nombre de la variable que recogÃa los valores, antes era busqueda_seleccion y busqueda_informacion, y ahora puse sel e inf.