Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2004, 13:15
Avatar de senioman
senioman
 
Fecha de Ingreso: mayo-2004
Mensajes: 13
Antigüedad: 19 años, 11 meses
Puntos: 1
Paginación de resultados

Saludos. Escribo casi desde la desesperación. Llevo una semana y un día, como una condena, pero que además es verdad intentando paginar una búsqueda de una base de datos. El caso es que he encontrado un código bueno por ahí y al no funcionar le he ido modificando cosas. El resultado es que la primera página visiona los resultados del 1 al 10, como quiero, pero al pasar a la segunda aparece el error 404. No se que hacer.

Aquí os paso el código. La primera parte selecciona resultados y los plasma y la segunda corresponde a la paginación propia.

Gracias por vuestra ayuda ante todo. un abrazo.

Código PHP:
///dos////////////muestra los resultados correspondientes a cada página
$image '<href="mostraroracion.php?tema_id=$tema_id"><img src="../imagenes/pastoral/icono' $row['icono'] . '.gif" width="14" height="14" border="0" /></a>';
$link mysql_connect("localhost""senioman"); 
mysql_select_db("foro"$link); 
if (!isset(
$pag)) $pag=1// Si la variable no está definida mostrar la página 1
$tampag 10;
$reg1 = ($pag-1) * $tampag// resta 1 del número de página y lo multiplica por el número de entradas por página. En relación con mysql_data_seek
$result mysql_query("SELECT tema_id, tema_titulo, tema_creador FROM temas_foro "$link); // después de temas_foro añadir "order by tema_id desc" para invertir orden
$total mysql_num_rows($result); //número total de entradas
if (mysql_num_rows($result)){ 
  echo 
"<table border = '0'> \n"
  echo (
$pag-1)*$tampag; echo $pag;//esto puselo yo
  
for ($i=$reg1$i<min($reg1+$tampag$total); $i++) { //
    
mysql_data_seek($result$i); //sitúa el puntero interno en la primera entrada de la serie que toca muestrar
    
$row mysql_fetch_array($result); // muestra las entradas seleccionadas en funcion del tampag y de la situacion del puntero interno
    
echo "<br><a href=\"mostraroracion.php?tema_id=".$row["tema_id"]."\">$image <font size='2' face='Verdana'>".$row["tema_id"]. "<font size='2' face='Verdana'>. <strong>".$row["tema_titulo"].
      
"</strong><br><font size='1' face='Verdana'>Puesto por ".$row["tema_creador"]."</td></tr> \n"
  }
  
  echo 
"</table> \n"
}
else
  echo 
"¡ No se ha encontrado ninguna oración !"
Segunda parte

Código PHP:

/******************************************************/
/* Funcion paginar
 * actual:          Pagina actual
 * total:           Total de registros
 * por_pagina:      Registros por pagina
 * enlace:          Texto del enlace
 * Devuelve un texto que representa la paginacion
 */
function paginar($pag$total$tampag$enlace) {
  
$total_paginas ceil($total/$tampag);
  
$anterior $pag 1;
  
$posterior $pag 1;
  if (
$pag>1)
    
$texto "<a href=\"$enlace$anterior\">&laquo;</a> ";
  else
    
$texto "<b>&laquo;</b> ";
  for (
$i=1$i<$pag$i++)
    
$texto .= "<a href=\"$enlace$i\">$i</a> ";
  
$texto .= "<b>$pag</b> ";
  for (
$i=$pag+1$i<=$total_paginas$i++)
    
$texto .= "<a href=\"$enlace$i\">$i</a> ";
  if (
$pag<$total_paginas)
    
$texto .= "<a href=\"$enlace$posterior\">&raquo;</a>";
  else
    
$texto .= "<b>&raquo;</b>";
  return 
$texto;
}


echo 
paginar($pag$total$tampag"oraciones.php?pag=");

?>