Como paginar los registros de mi bd?

Hola necesito saber como se hace para paginar mis registros de la base de datos. He estado buscando en sitios pero no logro tener buen resultado. A continuacion detallaré mi codigo para quien pueda agregar el scrip será muy agradecido.


<?php
$conexion = mysql_connect("***","****","****") or die("Problemas en la conexion");
mysql_select_db("notascolumnistas",$conexion) or die("Problemas en la selección de la base de datos");

function mostrarImagen($directorio, $cual){

$imagenNota = $directorio. "/" .$cual;
$images = glob($directorio."/{*.gif,*.jpg}", GLOB_BRACE);

foreach($images as $imagen){
if($imagen == $imagenNota){

echo('[contenido no disponible]');
}
}
}
mostrarImagen('imgs','imagen.jpg');

$registros= mysql_query("select fecha, titulo, desarrollo, foto, AUTOR from notas WHERE AUTOR=\"DIEGO\"",$conexion) or die("Problemas en el select:".mysql_error());

while ($reg = mysql_fetch_array($registros))

{
echo "<p class=\"fecha\">".$reg['fecha']."</p>
";
echo "<p class=\"titulo\">".$reg['titulo']."</p>
";
?>



<?php
echo "<p class=\"desarrollo\">".$reg['desarrollo']."
";

echo "
";
echo "<hr>";
}

mysql_close($conexion);

?>
Hola Foley te agradezco tu ayuda. Ya lo había mirado a ese ejemplo pero cuando lo voy adaptando a mi codigo nunca pude seguirlo sin errores. (cabe destacar que soy muy nuevo en esto de paginación). Gracias.
solo quieres subir datos a tu base de datos y tambien llamarlos?
Es facil programar "Solo interesate en aprender"
Hola Cesar_ed, lo que quiero es paginar los registros que me envía la base de datos para poder, en mi caso que son archivos de notas o textos, mostrar un registro por página. Gracias por tu interés.
hola gaston disculpa po no haberte contestado a tiempo lo que pasa es que estaba ocupado .
Pero bueno
aqui este code que pagina registros aver si te sirve
<?
 function db_conect()
 {
     $s=mysql_connect("TUSERVIDOR","TU USUARIO","PASS");
	 
	 $d=mysql_select_db("TUBASEDEDATOS");
	
 }
  
      db_conect();
	  $sql="SELECT * FROM TU TABLA ";
$res=mysql_query($sql);
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)
{
    echo "<div align='center'>";
    echo "

No se encontraron resultados</p>";
    echo "</div>";
}else{
    
   
 

   
    $tamPag=1;

 
    if(!isset($_GET["pagina"]))
    {
       $pagina=1;
       $inicio=1;
       $final=$tamPag;
    }else{
       $pagina = $_GET["pagina"];
    }
  
    $limitInf=($pagina-1)*$tamPag;

    $numPags=ceil($numeroRegistros/$tamPag);
    if(!isset($pagina))
    {
       $pagina=1;
       $inicio=1;
       $final=$tamPag;
    }else{
       $seccionActual=intval(($pagina-1)/$tamPag);
       $inicio=($seccionActual*$tamPag)+1;

       if($pagina<$numPags)
       {
          $final=$inicio+$tamPag-1;
       }else{
          $final=$numPags;
       }

       if ($final>$numPags){
          $final=$numPags;
       }
    }
	  $sql=mysql_query("SELECT * FROM TUTABLA WHERE for_id='".$f."'  ORDER BY tem_id desc  LIMIT ".$limitInf.",".$tamPag." ") 
	  or die (mysql_error());
	  
	  if(mysql_num_rows($sql))
	  {
	  while($qry=mysql_fetch_array($sql))
	  { 
	  
   tus peticiones

	  }
	 }
	
	}
	echo '<div align="center">';
	 if($pagina>1)
    {
       echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?f=".$f."&pagina=".($pagina-1)."'>";
       echo "<font face='verdana' size='-2'>anterior</font>";
       echo "</a> ";
    }

    for($i=$inicio;$i<=$final;$i++)
    {
       if($i==$pagina)
       {
          echo "<font face='verdana' size='-2'>[b]".$i."[/b] </font>";
       }else{
          echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?f=".$f."&pagina=".$i."'>";
          echo "<font face='verdana' size='-2'>".$i."</font></a> ";
       }
    }
    if($pagina<$numPags)
   {
       echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?f=".$f."&pagina=".($pagina+1)."'>";
       echo "<font face='verdana' size='-2'>siguiente</font></a>";
   }
	echo'</div>';
   }

saludos :wink:
Es facil programar "Solo interesate en aprender"
Hola Cesar, gracias por molestarte con tu ayuda. He probado tu codigo y esta funcionando, solo que no estoy pudiendo dar en la tecla con la limitación del número de registros. (ver el resultado en el siguiente link: http://www.futboldearrecifes.com/columnistas/columna-diego.php?f=&p… )

A continuación te dejo el codigo modificado para mi web para tu ayuda:

<?php
function db_conect()
{
$s=mysql_connect("*****","*******","******");

$d=mysql_select_db("notascolumnistas");

}

db_conect();
$sql="SELECT * FROM notas ";
$res=mysql_query($sql);
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)
{
echo "<div align='center'>";
echo "

No se encontraron resultados</p>";
echo "</div>";
}

else {

$tamPag=1;
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}
else{
$pagina = $_GET["pagina"];
}

$limitInf=($pagina-1)*$tamPag;

$numPags=ceil($numeroRegistros/$tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}
else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;

if($pagina<$numPags)
{
$final=$inicio+$tamPag-1;
}
else{
$final=$numPags;
}

if ($final>$numPags){
$final=$numPags;
}
}
$sql=mysql_query("SELECT * FROM notas WHERE AUTOR=\"DIEGO\" ORDER BY fecha desc LIMIT ".$limitInf.",".$tamPag." ")
or die (mysql_error());

if(mysql_num_rows($sql))
{
while($qry=mysql_fetch_array($sql))


echo '<div align="center">';
}
if($pagina>1)
{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?f=".$f."&pagina=".($pagina-1)."'>";
echo "<font face='tahoma' size='-2'>anterior</font>";
echo "</a> ";
}

for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font face='tahoma' size='-2'>".$i." </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?f=".$f."&pagina=".$i."'>";
echo "<font face='tahoma' size='-2'>".$i."</font></a> ";
}
}
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?f=".$f."&pagina=".($pagina+1)."'>";
echo "<font face='tahoma' size='-2'>siguiente</font></a>";
}
echo'</div>';
}
?>


La idea es limitar los registros a 1 por página (osea, 1 texto por página)
si me pudieras ayudar a resolver este paso terminaría de molestar. Gracias.
Hola gaston perdon por la tardanza es q' no podia conectarme por la escuela pero quedaria resuelto de esta forma :

<?php
function db_conect()
{
$s=mysql_connect("*****","*******","******");

$d=mysql_select_db("notascolumnistas");

}

db_conect();
$sql="SELECT * FROM notas ";
$res=mysql_query($sql);
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)
{
echo "<div align='center'>";
echo "

No se encontraron resultados</p>";
echo "</div>";
}

else {

$tamPag=1;
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}
else{
$pagina = $_GET["pagina"];
}

$limitInf=($pagina-1)*$tamPag;

$numPags=ceil($numeroRegistros/$tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}
else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;

if($pagina<$numPags)
{
$final=$inicio+$tamPag-1;
}
else{
$final=$numPags;
}

if ($final>$numPags){
$final=$numPags;
}
}
$diego = "DIEGO";
$sql=mysql_query("SELECT * FROM notas WHERE AUTOR='".$diego."' ORDER BY fecha desc LIMIT ".$limitInf.",".$tamPag." ")
or die (mysql_error());

if(mysql_num_rows($sql))
{
while($qry=mysql_fetch_array($sql))


echo '<div align="center">';
}
if($pagina>1)
{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."'>";
echo "<font face='tahoma' size='-2'>anterior</font>";
echo "</a> ";
}

for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font face='tahoma' size='-2'>[b]".$i."[/b] </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."'>";
echo "<font face='tahoma' size='-2'>".$i."</font></a> ";
}
}
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."'>";
echo "<font face='tahoma' size='-2'>siguiente</font></a>";
}
echo'</div>';
}
?> 
Espero y ya funke y si tienes una duda o problema ya sabes
para eso estamos aqui

saludos :wink:
Es facil programar "Solo interesate en aprender"
Ya encontre el problema que se me paso decirte , en tu sistema de noticias debes tener algo asi

if(mysql_numrows($variable)
{
while($variable = mysql_fetch_array($vatiable)
{
el code de tus noticias dentro

}
}

buscalo , claro no exactamente igual pero cuando encuentres algo parecido para poder continuar oks?
Es facil programar "Solo interesate en aprender"
Perdón por mi ignorancia, podrá ser esto:

while ($reg = mysql_fetch_array($rst_registros))

{
echo "<p class=\"fecha\">".$reg['fecha']."</p>
";
echo "<p class=\"titulo\">".$reg['titulo']."</p>
";
?>



<?php
echo "<p class=\"desarrollo\">".$reg['desarrollo']."
";

echo "
";
echo "<hr>";
}
sipi ahi es,
ahora solo dame el valor o donde se declara la variable
$rst_registros que tienes dentro del
while ($reg = mysql_fetch_array( $rst_registros))

y despues continuamos.
Es facil programar "Solo interesate en aprender"
$rst_registros= mysql_query("select fecha, titulo, desarrollo, AUTOR from notas WHERE AUTOR=\"DIEGO\"",$conexion) or die("Problemas en el select:".mysql_error());

no tienes msn?
si , enviamelo por mp mensaje privado si quieres
Es facil programar "Solo interesate en aprender"
Si no es mucha molestia, por favor, poner el código finalizado aquí en el foro, igual a alguien le puede servir ;)

Gracias
He colocado el el contenido completo del codigo para ver si podemos resolver esta traba. Actualmente me surge un problema principal que es que me muestra todos los registros (las notas) en las 13 paginas actuales vease en el siguiente link para entender: ( http://www.futboldearrecifes.com/columnistas/columna-diego.php ) y lo que pretendo es que se vea un resultado (nota) por pagina.
el segundo problemita es que en los vinculos selectores (anterior, siguiente) de la pagina 11, 12 y 13 los desalinea del centro.

Espero que ser lo más especifico y entendible posible.


<?php
function db_conect()
{
$s=mysql_connect("****","***","******");

$d=mysql_select_db("notascolumnistas");

}

db_conect();
$sql="SELECT * FROM notas ";
$res=mysql_query($sql);
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)
{
echo "<div align='center'>";
echo "

No se encontraron resultados</p>";
echo "</div>";
}

else {

$tamPag=1;
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}
else{
$pagina = $_GET["pagina"];
}

$limitInf=($pagina-1)*$tamPag;

$numPags=ceil($numeroRegistros/$tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}
else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;

if($pagina<$numPags)
{
$final=$inicio+$tamPag-1;
}
else{
$final=$numPags;
}

if ($final>$numPags){
$final=$numPags;
}
}
$diego = "DIEGO";
$sql=mysql_query("SELECT * FROM notas WHERE AUTOR='".$diego."' ORDER BY fecha desc LIMIT ".$limitInf.",".$tamPag." ")
or die (mysql_error());

if(mysql_num_rows($sql))
{
while($reg = mysql_fetch_array($rst_registros))
{
echo "<p class=\"fecha\">".$reg['fecha']."</p>
";
echo "<p class=\"titulo\">".$reg['titulo']."</p>
";
echo "<p class=\"desarrollo\">".$reg['desarrollo']."
";
}

echo '<div align="center">';
}
if($pagina>1)
{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."'>";
echo "<font face='tahoma' size='-1'>anterior</font>";
echo "</a> ";
}

for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font face='tahoma' size='-1'>".$i." </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."'>";
echo "<font face='tahoma' size='-1'>".$i."</font></a> ";
}
}
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."'>";
echo "<font face='tahoma' size='-1'>siguiente</font></a>";
}
echo'</div>';
}
?>
lo que pasa es que tienes un problema

en esta parte

$diego = "DIEGO";
$sql=mysql_query("SELECT * FROM notas WHERE AUTOR='".$diego."' ORDER BY fecha desc LIMIT ".$limitInf.",".$tamPag." ")
or die (mysql_error());

if(mysql_num_rows($sql))
{
while($reg = mysql_fetch_array($rst_registros))
{

el valor que contenga $rst_registros añadele
LIMIT ".$limitInf.",".$tamPag." " y declarala dentro de estos if y while
y quita el if y while que tiene tus noticias y en este if cambia $sql por $rst_registros
saludos :wink:
Es facil programar "Solo interesate en aprender"
Hola gaston mejor dame tu codigo completo claro alterando tus datos - ocultandolos para que asi pueda dejarte el code finalizado ok??

saludos :wink: