Hola amigos,
Os adjunto el codigo final, resuelto gracias a la ayuda de Josemi y Manoloweb. Gracias por todo.
Código PHP:
<?
// Nos conectamos con el servidor MySQL
$conexion = mysql_connect("localhost", "root", "")
or die("¡No se ha podido establecer la conexión con el servidor local!");
// Seleccionamos la Base de Datos
$resp = mysql_select_db("test")
or die("¡No se ha podido seleccionar la base de datos yyy!");
// Limito la busqueda
$tamano_pagina = 10;
// Examino la página a mostrar y el inicio del registro a mostrar
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $tamano_pagina;
}
$criterio=''; // primero vaciamos la consulta
if (''!=$_POST["apellidos"])
{
$criterio.=" and APELLIDO like '%{$_POST["apellidos"]}%'";
}elseif (''!=$_GET["apellidos"]) {
$criterio.=" and APELLIDO like '%{$_POST["apellidos"]}%'";
}
if (''!=$_POST["dni"])
{
$criterio.=" and DNI like '%{$_POST["dni"]}%'";
}elseif (''!=$_GET["dni"]) {
$criterio.=" and DNI like '%{$_GET["dni"]}%'";
}
// si $condicion esta vacia es que no han rellenado ningun campo
// Si es necesario que rellenen algun campo, lo tratamos como un error
if (''==$criterio)
{
//tratamos el error
}
// si tiene valor, quitamos los 4 primeros caracteres ' and'
$criterio=substr($criterio,4);
// con esto tenemos la condicion
// ahora montamos la consulta
$sqlquery = "SELECT * FROM pilp2003 WHERE ".$criterio." ORDER by idContacto";
/* Notificamos fallo si se produce */
$queryresult = mysql_query($sqlquery) or die("¡No se puede ejecutar la sentencia select1!");
$num_total_registros = mysql_num_rows($queryresult);
// Calculo el total de páginas
$total_paginas = ceil($num_total_registros / $tamano_pagina);
// Número de registros total, tamaño de página y la página que se muestra
echo "Número de registros encontrados: " . $num_total_registros . "<br>";
echo "Se muestran páginas de " . $tamano_pagina . " registros cada una<br>";
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";
// Miro a ver el número total de campos que hay en la tabla con esa búsqueda
$sqlquery = "SELECT * FROM pilp2003 WHERE" . $criterio . " limit " . $inicio . "," . $tamano_pagina;
echo $sqlquery . "<p>";
/* Notificamos fallo si se produce */
$queryresult = mysql_query($sqlquery) or die("¡No se puede ejecutar la sentencia select2!");
$num_total_registros = mysql_num_rows($queryresult);
echo "<table border = '1'> \n";
echo "<tr> \n";
// Para los del ejemplo
echo "<td>IdContacto</td> \n";
echo "<td>Nombre</td> \n";
echo "<td>Apellido</td> \n";
echo "<td>DNI</td> \n";
echo "<td>Teléfono</td> \n";
echo "<td>Teléfono1</td> \n";
echo "<td>Móvil</td> \n";
echo "</tr> \n";
while ($fila = mysql_fetch_object($queryresult))
{
echo "<td>".$fila->IdContacto."</td> \n";
echo "<td>".$fila->NOMBRE."</td> \n";
echo "<td>".$fila->APELLIDO."</td> \n";
echo "<td>".$fila->DNI."</td> \n";
echo "<td>".$fila->TELEFONO."</td> \n";
echo "<td>".$fila->TELEFONO1."</td> \n";
echo "<td>".$fila->TELMOVIL."</td> \n";
echo "</tr> \n";
}
echo "</TABLE>";
// Liberamos
mysql_free_result($queryresult);
// Cerramos la conexión con la BD
mysql_close($conexion);
echo "<p>";
//muestro los distintos índices de las páginas, si es que hay varias páginas
if ($total_paginas > 1){
for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i)
//si muestro el índice de la página actual, no coloco enlace
echo $pagina . " ";
else
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
echo "<a href='busqueda.php?pagina=" . $i . "&apellidos=" . $apellidos . "&dni=".$dni."'>" . $i . "</a> ";
}
}
?>
Un saludo y muchas gracias