Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/05/2003, 05:23
lailuluelo
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 20 años, 11 meses
Puntos: 0
Varios criterios en la paginación

Muchas gracias por tu respuesta, me ha ayudado bastante. Ahora tengo otro problema, en el formulario tengo varios campos con lo que me gustaria formar la clausula where par aque me encontrara todos los registros cuyos apellidos se parezcan a la cadena que me pasan o al dni que me pasan. Esto es formar algo como: select * from tabla where campo1 like cadena or campo2 like cadena2. De sta forma me devolveria todos los registros que cumplieran alguna de las condiciones.

El caso es que he probado varias combinaciones y no he conseguido resultados.

Adjunto el codigo por si se os ocurre algo, MUCHAS GRACIAS DE ANTEMANO


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Resultado de la búsqueda</title>
<link REL="StyleSheet" href="../css/estilo.css" type="text/css">
</head>

<body>
<div align="center">

<?

// 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 = "";
if ($_POST["apellidos"]!=""){
$txt_criterio = $_POST["apellidos"];
$criterio = "where APELLIDO like '%".$txt_criterio."%' order by idContacto";
}
*/

$criterio1 = "";
if ($_POST["apellidos"]!=""){
$txt_criterio1 = $_POST["apellidos"];
} elseif ($_GET["criterio1"]!="") {
$txt_criterio1 = $_GET["criterio1"];
}

$criterio1 = "where APELLIDO like '%".$txt_criterio1."%'";

$criterio2 = "";
if ($_POST["DNI"]!=""){
$txt_criterio2 = $_POST["apellidos"];
} elseif ($_GET["criterio2"]!="") {
$txt_criterio2 = $_GET["criterio2"];
}

$criterio2 = " or DNI like '%".$txt_criterio2."%' order by idContacto";


$sqlquery = "SELECT * FROM pilp2003 " . $criterio1 . $criterio2;

echo $sqlquery;
/* Notificamos fallo si se produce */
$queryresult = mysql_query($sqlquery) or die("¡No se puede ejecutar la sentencia select!");


$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 " . $criterio1 . . $criterio2 . " limit " . $inicio . "," . $tamano_pagina;


echo $sqlquery . "<p>";
/* Notificamos fallo si se produce */


$queryresult = mysql_query($sqlquery) or die("¡No se puede ejecutar la sentencia select!");


$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 . "&criterio1=" . $txt_criterio1 . "&criterio2=" . $txt_criterio2 ."'>" . $i . "</a> ";
//echo "<a href='busqueda.php?pagina=" . $i . "&criterio=" . $txt_criterio . "'>" . $i . "</a> ";
}
}




?>

</div>
</body>
</html>