Ver Mensaje Individual
  #8 (permalink)  
Antiguo 16/05/2003, 07:18
lailuluelo
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 21 años
Puntos: 0
Código final - Muy agradecido

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