Foros del Web » Programando para Internet » PHP »

Yuda con Script del paginador

Estas en el tema de Yuda con Script del paginador en el foro de PHP en Foros del Web. Ayuda con Script del paginador Bueno el titulo del post lo hice mal ruego que me disculpen Hola amigos estado buscando algún tutorial de como ...
  #1 (permalink)  
Antiguo 05/08/2008, 12:23
Avatar de j84625  
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 10 meses
Puntos: 2
Mensaje Yuda con Script del paginador

Ayuda con Script del paginador

Bueno el titulo del post lo hice mal ruego que me disculpen

Hola amigos estado buscando algún tutorial de como crear un paginador en php y mysql hay varios script pero no funcionan
encontré uno que almeno funciona un 50% logre que muestre el contenido dela columna pero cuando le doy ala pagina 2 o siguiente muestra el mismo contenido
En principio quisiera un turorial o Script que pueda usar para guiarme.
aquí les dejo el código php haber si me pueden ayudar con el script ya que no puedo hacerlo funcionar
Código PHP:
<?

function conectar() 

    
$base_de_datos "tes";
    
$db_usuario "user"
    
$db_password "1234567"
   
    if (!(
$link mssql_connect("localhost"$db_usuario$db_password))) 
    { 
        echo 
"Error conectando a la base de datos."
        exit(); 
    } 
    if (!
mssql_select_db($base_de_datos$link)) 
    { 
        echo 
"Error seleccionando la base de datos."
        exit(); 
    } 
    return 
$link


$db conectar();


$registros 3;

if (!
$pagina) { 
    
$inicio 0
    
$pagina 1

else { 
    
$inicio = ($pagina 1) * $registros



?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Noticias</title>
<style>
    body { font-family: arial; font-size:12px}
</style>
</head>

<body>
    <?
    $resultados 
mssql_query("SELECT id FROM articulos WHERE visible = 1");
    
$total_registros mssql_num_rows($resultados); 
    
$resultados mssql_query("SELECT * FROM articulos WHERE visible = 1 ORDER BY fecha DESC ");    
    
$total_paginas ceil($total_registros $registros);                       

    if(
$total_registros) {
    
        while(
$articulo=mssql_fetch_array($resultados)) {
            
            echo 
"<b>".$articulo["titulo"]."</b><br>";
            echo 
"<font color='#666666'>".$articulo["descripcion"]."</font><br><br><br>";
            
        }
        
    } else {
        echo 
"<font color='darkgray'>(sin resultados)</font>";
    }
    
    
mssql_free_result($resultados);                
    
    if(
$total_registros) {
        
        echo 
"<center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='paginacion.php?pagina=".($pagina-1)."'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i
                echo 
"<b>".$pagina."</b> "
            else
                echo 
"<a href='paginacion.php?pagina=$i'>$i</a> "
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='paginacion.php?pagina=".($pagina+1)."'>Siguiente ></a>";
        }
        
        echo 
"</center>";
        
    }
    
?>
</body>
</html>
<? mssql_close($db);?>
Espero que alguno me pueda ayudar en algo gracias...
  #2 (permalink)  
Antiguo 05/08/2008, 12:42
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Yuda con Script del paginador

Por lo que veo siempre haces lo mismo:
Código PHP:
$resultados mssql_query("SELECT id FROM articulos WHERE visible = 1");
$total_registros mssql_num_rows($resultados);
$resultados mssql_query("SELECT * FROM articulos WHERE visible = 1 ORDER BY fecha DESC "); 
Deberias ponerle un LIMIT al sql... algo como:
Código PHP:
$resultados mssql_query("SELECT id FROM articulos WHERE visible = 1");
$total_registros mssql_num_rows($resultados);
$resultados mssql_query("SELECT * FROM articulos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros"); 
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 05/08/2008, 13:09
Avatar de j84625  
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Yuda con Script del paginador

Código PHP:
$resultados mssql_query("SELECT id FROM articulos WHERE visible = 1");
$total_registros mssql_num_rows($resultados);
$resultados mssql_query("SELECT * FROM articulos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros"); 
no puedo usar LIMIT me da el siguiente error Warning: mssql_query() [function.mssql-query]: message: Línea 1: sintaxis incorrecta cerca de 'LIMIT'. (severity 15) in
que podría hacer uso mssql como se puede ver en el código
  #4 (permalink)  
Antiguo 05/08/2008, 13:26
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Yuda con Script del paginador

Ese LIMIT que te envie es de mySQL... hay que cambiarlo al formato SQL con TOP X where id between inicio and total:
Cita:
SELECT TOP 3 * FROM articulos WHERE visible = 1 AND id BETWEEN $inicio AND $registros ORDER BY fecha DESC
Algo asi podria servirte, Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 05/08/2008, 13:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Yuda con Script del paginador

Desafortunadamente no es tan sencillo en MSSQL, ya que se requiere que se usen querys anidados, te dejo este link para que estudies un poco:

http://www.singingeels.com/Articles/...rver_2005.aspx

Saludos.
  #6 (permalink)  
Antiguo 05/08/2008, 19:16
Avatar de j84625  
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Yuda con Script del paginador

Hola ya tengo un paginador que funciona con MSSQL
Código PHP:
// comprobar si la página actual es de uno. Si es así no habrá ningún vínculo.

             
if($a->getCurrent()==1)
                 {
                 
$first "Primeros | ";
                 } else { 
$first="<a href=\"" .  $a->getPageName() . "?page=" $a->getFirst() . "\">Primeros</a> |"; }  
                     
//comprobar que getPrevious() es devolver un valor. De no ser así no habrá ningún vínculo.
               
if($a->getPrevious())
                 {
                 
$prev "<a href=\"" .  $a->getPageName() . "?page=" $a->getPrevious() . "\">Anteriores</a> | ";
                 } else { 
$prev="Anteriores | "; }
              
// comprobar que getNext () es devolver un valor. De no ser así no habrá ningún vínculo.
             
if($a->getNext())
                 {
                 
$next "<a href=\"" $a->getPageName() . "?page=" $a->getNext() . "\">Siguientes</a> | ";
                 } else { 
$next="Siguientes | "; }
        
               
//comprobar que getLast () es devuelve un valor. De no ser así no habrá ningún vínculo.
               
if($a->getLast())
                 {
                 
$last "<a href=\"" $a->getPageName() . "?page=" $a->getLast() . "\">Ultimos</a> |";
                 } else { 
$last="Ultimos | "; }
                         
//ya que estos siempre existirán sólo imprimir los valores. Resultado será
                         //algo así como 1 de 4 de 25
                  
echo "Del "$a->getFirstOf() . " Al " .$a->getSecondOf() . " ";
                            
//imprimir los valores determinados por el caso de declaraciones anteriormente.
                  
echo $first " " $prev " " $next " " $last;
                    
//============================================================================== 
ahora quisiera realizar lo siguiente
el paginador actual es asi
Del 1 Al 15 Primeros | Anteriores | Siguientes | Ultimos |
y quisiera ponerlo asi
<< anterior 1 2 3 4 5 siguiente >> y cuando realicen el click en la pagina 4 o 5
quedaría así
<< anterior 4 5 6 7 8 siguiente >>
que siempre mantenga el mismo diseño y no supere un limite de números por pagina

Espero que me puedan ayudar
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 15:35.