RE:DUDA facil de contestar
En primer lugar, quiero comentar que si lo que quieres es un foro escrito en php, deberías echar un ojo a PHPBB. Es un foro 'prefabricado', muy personalizable. Si tu servidor es local (es decir, los visitantes se conectan a TU máquina para ver la web), puedes bajar e instalar el PHPBB gratuitamente (es Free software, o sea gratuito y de código abierto); si el servidor es remoto, deberías consultar a la empresa que te provee el 'hosting' para saber si dispones de PHPBB y cómo activarlo: la mayoria de servicios que ofrecen PHP también disponen de PHPBB, pues no tienen coste alguno y es un incentivo para obtener clientes.
Tanto si no tienes acceso al PHPBB como si no quieres usarlo, existen muchas maneras de conseguir el efecto que pretendes. Para los ejemplos siguientes, voy a suponer que en tu base de datos del foro tienes un campo autonumérico de índice en cada tabla... si no tienes dicho campo, sería muy conveniente agregarlo.
Dicho esto, ahi va el código (es muy genérico, así que tendrás que adaptarlo):
$query = sprintf("SELECT campos FROM tabla WHERE `id`>='%s' AND `id`<'%s'", $start, $start + $n);
después ejecutas la consulta y te devolverá exactamente n registros, empezando desde el numero start. Para el enlace a las páginas siguientes, anterior, o 'x', puedes usar códigos del tipo:
<input type="text", name="pag", id="pag" /> te crearía un cuadro de texto para escoger nº de página
luego:
if(!isset($start)) {
$start = $pag * $n + 1;
}
Para que el código anterior funcione, el cuadro de texto ha de estar en un formulario que apunte al mismo archivo (action="archivo.php"), y ha de haber un boton tipo submit para que el usuario pueda enviar la petición a tu servidor.
para la página siguiente, usa:
<a href="<?php echo 'archivo.php?start=' . $start + $n . '&n=' . $n;?>">Pagina siguiente</a>
De la misma forma, para la anterior, usa:
<?php
function maximo($a, $b) {
if ($a>=$b) {
return $a;
} else {
return $b;
}
}
?>
<a href="<?php echo 'archivo.php?start=' . maximo($start - $n, 1) . '&n=' . $n;?>">Pagina anterior</a>
La funcion maximo la uso aqui para evitar que vayas a páginas negativas: por ejemplo, si en la página 1 clickas Página anterior, volverás a estar en la pagina 1. Otra opción (más lógica) es usar un if para evitar que el enlace 'anterior' aparezca en la primera página y, de paso, 'siguiente' no salga en la última.
Si necesitas más ayuda, no dudes en ponerte en contacto conmigo, a través de este mismo foro o mediante mi correo electrónico