Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/06/2012, 12:16
powerbalance48
 
Fecha de Ingreso: junio-2012
Mensajes: 6
Antigüedad: 11 años, 10 meses
Puntos: 0
Problema codigo de paginacion php y mysql

Estoy usando este codigo de paginacion en php y sql para paginar mis noticias del index. Todo funciona perfecto, exepto 1 problema, tengo 2 noticias por pagina, pero al pasar a la siguiente pagina me aparece la segunda noticia de primera en la siguiente pagina, ejemplo "pagina 1 = noticia 1 y 2" "pagina 2 = noticia 2 y 3" "pagina 3 = noticia 3 y 4" y asi susesivamente, lo que quiero es que aparescan 2 y 2 no asi como me aparecen, no se que cambiar para que esto funcione.

Cita:
<?php

$host = "";
$user = "";
$passwd = "";
$database = "";

//provando conexion con mysql
$db = mysql_connect($host,$user,$passwd);

//provando conexion con la base de datos
@mysql_select_db($database,$db);

$rows_for_page = 2; //numero de registros a mostra
$sql = "SELECT * FROM noticias2";
$result = mysql_query($sql, $db);
//total de registros existentes en la tabla
$total_records = @mysql_num_rows($result);

//total de paginas
$pages = ceil($total_records / $rows_for_page);

@mysql_free_result($result);

//si no existe por GET la var screen coloca por defecto el valor de 0
if (!isset($_GET['screen']))
$paginado = 0;
//de lo contrario asigna el valor por get a $position
else
$position = (int)$_GET['screen'];

//comenzando el paginado

//consulta ala db por limites
$sql = "SELECT * FROM noticias2 order by id ASC LIMIT ".$position.",".$rows_for_page;
//ejecuta el query
$result = mysql_query($sql, $db);
//resultados de la consulta (total)
$rows = @mysql_num_rows($result);

//imprime registros
for ($i = 0; $i < $rows; $i++) {
$title = mysql_result($result,$i,1);
$content = mysql_result($result,$i,2);
echo "<h1> $title </h1>
<br>
<p>$content</p><br>";
}
//comienza el paginado
echo '<p><hr></p>
<div style="width:100%; text-align:center;">';
//si posicion es mayor o igual a 1 quiere decir que muestre la parte Primero y Anterior de la paginación
if ($position >= 1) {
$url = "index.php?screen=0";
echo "<a href=\"$url\">Primero</a>\n";
//para que el preius no termine con valor 0
$url = "index.php?screen=" .($position-1);
echo "<a href=\"$url\">Anterior</a>\n";
}
//sirve para expandir el prollecto para poder paginar de la manera (Primero Anterior | 0 | 1 | 2 | 3 | Siguiente Ultimo)
/*for ($i = 0; $i < $pages; $i++) {
$url = "index.php?screen=" . $i;
echo " | <a href=\"$url\">$i</a> | ";
}*/

//muestra total de resultados 1 de N
echo '<strong>'.($position+1).' de '.$pages.' </strong>';

//si position es menor a el valor entre los parentesis muestra la parte (Siguiente Ultimo)
if ($position < ($pages-1)) {
$url = "index.php?screen=" . ($position+1);
echo "<a href=\"$url\">Siguiente</a>\n";
$url = "index.php?screen=" . ($pages-1);
echo "<a href=\"$url\">Ultimo</a>\n";
}
echo '</div>';
?>
Espero me puedan ayudar con esto, GRACIAS!