Lo he intentado adaptar a mi situación, con el siguiente codigo:
Código:
En mi base de datos "dieta", está la tabla "comentarios" que contiene 3 campos (id, nick y texto). Ingrese 5 comentarios:<?php ######################################################## ## PAGINAR REGISTROS ## POR: Marco A. Castillo ## EMAIL: [email protected] ######################################################## # Funcion para conectar a la base de datos function conectar($host,$user,$pass,$db){ $link = @mysql_connect($host,$user,$pass) or die("Error Conectando a la Base de datos"); @mysql_select_db($db,$link) or die("Error Seleccionando base de datos."); return $link; } $host = "localhost"; $user = "root"; $pass = ""; $db = "dieta"; # Se crea la variable $link que es para identificar la coneccion # a la base de datos $link = conectar($host,$user,$pass,$db); # aqui colocan la tabla que se utilizara para # extraer los registros y paginarlos $tabla = "comentarios"; # aqui se extrae la cantidad de registros totales $rsC = mysql_query("Select count(*) from ".$tabla); $resultC = mysql_fetch_array($rsC); $count = $resultC[0]; # Aqui se pone la cantidad de registros por pagina # que se quieren mostrar $hasta = 2; if($pag==""){ $desde = 0; $pag = 1; } else{ $pag = $_GET["pag"]; $pagS = $pag - 1; $desde = $hasta * $pagS; } $rs = mysql_query("select * from ".$tabla." limit $desde,$hasta"); if($count!=0){ while($result=mysql_fetch_array($rs)){ echo '<br /><hr><br />'; echo '<b><u>' . $result['nick'] . '</u>' . ' dijo:</b><br /><br />' . $result['texto'] . '<br />'; echo $result["licencia"]."<br>\n"; # fin del despliegue personalizado. } } else{ echo "No tenemos registros."; } mysql_close($link); # aqui se llama a la funcion que muestra los links por paginas # la variable $extra_variables es para anexar mas variables al url # si es necesario para los querys que hagan. # Solo se debe concatenar los datos nombre1=valor1&nombre2=value2 # NOTA: puede ubicar en cualquier parte de su codigo esta funcion # para que aparesca dentro de la celda que desee. # link totales es una variable al ser definida le dices a la funcion # cuantos links quieres que aparescan por pantalla ya que si tienes # 100 paginas no deberas ver los 100 links y solo muestres los necesarios $link_totales = 4; # se llama la funcion paginar # los links si tiene un css podran tomar la estructura y color que le pongas ## Inicia Paginador paginar($count,$hasta,$pag,$link_totales,$extra_variables); # Funcion paginar # Inicia function paginar($count,$hasta,$pag,$link_totales,$extra_variables){ if($link_totales==1)$link_totales=2; $links = $count / $hasta; $arriba = $link_totales - 2; $abajo = $pag - 1; if($abajo==0)$abajo = 1; $temp_r = $links - $pag; if($temp_r>=$arriba){ $link_break = $pag + $arriba; } else{ $link_break = $links; $abajo = $pag + 1 - $arriba; if($pag==$links-1)$abajo = $pag - $arriba; if($pag==$links)$abajo = $pag - 1 - $arriba; } if($pag==1)$link_break = $link_totales; if($abajo==0)$abajo=1; if(strlen($extra_variables)!=0) $extra_variables = "&".$extra_variables; if($pag==1){ $anterior = 1; } else{ $anterior = $pag - 1; } if($pag!=1){ echo "<a href=".$_SERVER['PHP_SELF']."?pag=".$anterior.$extra_variables."><< Anterior | </a>"; } for($i=$abajo;$i<=$links;$i++){ if($link_break<$i){ break; } else{ if($pag==$i){ echo $i." | "; } else{ echo "<a href='".$_SERVER['PHP_SELF']."?pag=".$i.$extra_variables."'>"; echo $i; echo " | </a>"; } } } if($pag==$links){ $siguiente = $links; } else{ $siguiente = $pag + 1; } if($pag!=$links){ echo "<a href=".$_SERVER['PHP_SELF']."?pag=".$siguiente.$extra_variables.">Siguiente >></a>"; } } ?>
id nick texto
-----------------------------------
14 Nick 1 Comentario 1
15 Nick 2 Comentario 2
16 Nick 3 Comentario 3
17 Nick 4 Comentario 4
18 Nick 5 Comentario 5
Solo he agregado los datos de mi base de datos y tabla. Ademas, le he puesto la parte donde se muestran los resultados a mi gusto.
Cuando lo coloco en el directorio www de WampServer y lo miro en localhost, me da unos cuantos de errores:
( ! ) Notice: Undefined variable: pag in D:\wamp\www\dieta\mostrar2.php on line 37
Call Stack
# Time Memory Function Location
1 0.0016 395112 {main}( ) ..\mostrar2.php:0
Nick1 dijo:
Comentario 1
( ! ) Notice: Undefined index: licencia in D:\wamp\www\dieta\mostrar2.php on line 52
Call Stack
# Time Memory Function Location
1 0.0016 395112 {main}( ) ..\mostrar2.php:0
Nick2 dijo:
Comentario 2
( ! ) Notice: Undefined index: licencia in D:\wamp\www\dieta\mostrar2.php on line 52
Call Stack
# Time Memory Function Location
1 0.0016 395112 {main}( ) ..\mostrar2.php:0
( ! ) Notice: Undefined variable: extra_variables in D:\wamp\www\dieta\mostrar2.php on line 74
Call Stack
# Time Memory Function Location
1 0.0016 395112 {main}( ) ..\mostrar2.php:0
1 | 2 | Siguiente >>
Ademas, si pulso Siguiente, sigue mostrando únicamente los dos primeros resultados, no los siguientes 2.
Agradeceria mucho vuestra ayuda para localizar donde está el error. Gracias.