Foros del Web » Programando para Internet » PHP »

Paginacion Php

Estas en el tema de Paginacion Php en el foro de PHP en Foros del Web. este archivo se llama paginado.php pero sale error en la linea 33 http://www.g2project.com/pruebas/librosql/paginado.php Warning: Supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/g2project.com/httpdocs/pruebas/librosql/paginado.php ...
  #1 (permalink)  
Antiguo 13/01/2004, 19:55
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Paginacion Php

este archivo se llama paginado.php pero sale error en la linea 33
http://www.g2project.com/pruebas/librosql/paginado.php
Warning: Supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/g2project.com/httpdocs/pruebas/librosql/paginado.php on line 33

A que se debe eso y que debo corregir pues es un libro de visitas y se veria veo eso

Código PHP:
<?php 

include "config.php";

//conectamos a mysql
$conecta mysql_connect($dbhost,$dbuser,$dbpass) or die("Imposible conectar con MySQL.\n<br />\nPrueba en editar el archivo config.php");
//seleccionamos db
mysql_select_db($dbname,$conecta) or die("Imposible seleccionar DB.\n<br />\nPrueba en editar el archivo config.php");

if (!isset(
$_GET['pg'])){
    
//Si no se ha hecho click a ninguna página específica
    //O sea si es la primera vez que se ejecuta el script
    //$pg es la pagina actual-->la página actual será la primera.
    
$pg 1;
}else{
    
//Si se "pidió" una página específica:
    //La página actual será la que se pidió.
    
$pg=$_GET['pg'];
}

//cantidad de resultados por página. Como ves, sólo cambias el número por el que quieras.
$cantidad=5;

//Calculamos desde qué registro se mostrará en esta página
//Recordemos que el conteo empieza desde CERO.
$inicial = ($pg-1) * $cantidad;

//Consulta SQL. Devuelve $cantidad registros empezando desde $inicial
$sql "SELECT * FROM libro ORDER BY fecha LIMIT $inicial,$cantidad";
$result mysql_query($sql) or die (mysql_error());

//Imprimimos los registros de esta página.
while($datos mysql_fetch_array($result)) {

echo 
"<table width=\"700\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\n"
    
."<tr>\n"
    
."<td width=\"25%\">Autor</td>\n"
    
."<td width=\"75%\">Mensaje</td>\n"
    
."</tr>\n"."<tr>\n"."<td width=\"25%\" align=\"center\" valign=\"top\"> $datos[autor] <br />"; if ($mostrar_ip == 1) { echo "IP: $datos[ip]"; }
echo 
"</td>\n"
    
."<td width=\"75%\" valign=\"top\"> Enviado: $datos[fecha] Título: $datos[titulo] <hr size=\"1\" /> $datos[mensaje] </tr>\n"
    
."</tr>\n"
    
."</table>\n"
    
."<br />\n\n";
}

//Contamos el total de registros en la BD (para saber cuántas páginas serán)
$sql2 "SELECT COUNT(*) FROM libro"
$result2 mysql_query($sql2);
$total_registros mysql_result($result2,0,0);//total de registros

//Calculamos el número de páginas (saldrá un decimal)
$pages $total_registros $cantidad;

//con ceil() redondeamos y $pages será el número total (entero) de páginas que tendremos
$pages ceil($pages);


//liberamos memoria y desconecta de mysql
@mysql_free_result($resp); mysql_close($conecta);

//Creamos los enlaces de paginación
echo "<p>";
if (
$pg != 1){
    
//Si no estamos en la página 1. Ponemos el enlace "anterior"
    
$url $pg 1;//será el número de página al que enlazamos
    
echo "<a href='".$_SERVER['PHP_SELF']."?pg=".$url."'>&laquo; Anterior</a>&nbsp;";
}else {
    
//Si estamos en la página 1. El enlace "Anterior" no aparece.
    
echo " ";
}

//Enlaces a números de página:
for ($i 1$i<=$pages$i++) {//Desde página 1 hasta última página ($pages)
    
if ($i == $pg) {
        
//Si el número de página es la actual ($pg). Se escribe el número, pero sin enlace
        
echo "<font face=Arial size=2 color=ff0000><b>&nbsp;$i&nbsp;</b></font>";
    }else{
        
//Si es cualquier otro. Se escibe el enlace a dicho número de página.
        
echo "<a href='".$_SERVER['PHP_SELF']."?pg=".$i."'>".$i."</a>&nbsp;";
    }
}

if (
$pg $pages) {
    
//Si no estamos en la última página. Ponemos el enlace "Siguiente"
    
$url $pg 1;//será el número de página al que enlazamos
    
echo "<a href='".$_SERVER['PHP_SELF']."?pg=".$url."'>Siguiente &raquo;</a>";
}else {
    
//Si estamos en la última página. No aparece el enlace "Siguiente"
    
echo " ";
}
echo 
"</p>";


?>
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #2 (permalink)  
Antiguo 14/01/2004, 00:28
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Bueno... yo hice algunos cambios al script de paginación que ya se posteó varias veces de tal forma que se pueda utilizar sin tener que tocarlo... está facilísimo de utilizar y de entender:

http://jpinedo.webcindario.com/doc-paginator.php

Saludos
  #3 (permalink)  
Antiguo 14/01/2004, 15:51
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
ok voy a revisar si sucede algo te paso la voz, de todas maneras gracias (Y)
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #4 (permalink)  
Antiguo 14/01/2004, 17:31
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Bueno.. el script es básicamente el mismo que estás posteando (que por las líneas comentadas veo que es el mismo que yo posteé antes xD)...

Lo único que he hecho es acomodarlo de tal manera que no sea necesario cambiarle ni una línea. Simplemente habrá que definir una variable llamada: $_pagi_sql que deberá contener una sentencia sql válida... luego incluir el script... y listo!! nada más... sólo te queda mostrar los registros y la "barra de navegación"... En el link que te puse arriba está muy bien explicado y hay un ejemplo muy claro de su utilización...

Además me he tomado el trabajo de comentar cada línea para que, si quieres revisar el código, sepas exactamente qué hace el script en cada línea y no te pierdas...

No dejes de comentarme qué tal te fue.

Saludos
  #5 (permalink)  
Antiguo 14/01/2004, 18:02
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 20 años, 6 meses
Puntos: 0
Disculpen mi gran ignorancia sobre bases de datos...
Pero...
¿Que es la paginación?
Saludos
  #6 (permalink)  
Antiguo 14/01/2004, 18:43
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Es lo que hace este foro o google cuando los resultados de una consulta a la BD son muchos y mejor los va mostrando de 20 en 20 en varias páginas...

Tienes un ejemplo en mi página, además del script de paginación debidamente comentado línea por línea y un ejemplo de su uso:

http://jpinedo.webcindario.com/doc-paginator.php

saludos

Última edición por jpinedo; 14/01/2004 a las 18:50
  #7 (permalink)  
Antiguo 14/01/2004, 19:07
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
De maravilla

ayer salia error hoy no, simplemente deje el codigo como estaba y funciono a la perfeccion.

Gracias maestro :)
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:57.