Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/05/2008, 09:57
anibal_cdf
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: paginar php mysql con ajax pero en vez de numeros usar palabras ?

Código PHP:
<?

// Conexion a base de datos

function conectar()
{
    if (!(
$link=mysql_connect("localhost", "xxxxxx", "xxxxxx")))
    { 
        echo 
"Error conectando a la base de datos."; 
        exit(); 
    } 
    if (!
mysql_select_db("xxxxx",$link)) 
    { 
        echo 
"Error seleccionando la base de datos."; 
        exit(); 
    } 
    return 
$link; 
}

function 
desconectar()
{
    
mysql_close();
}

$link=conectar();

// Fin conexion


/* Nombre de este script */
$nombre="prueba.php";

/* Numero total de registros (puede venir de Mysql)*/
//$total[0]=100;
$sql = "select * from textos";
$resultado = mysql_query($sql, $link);
$total[0] = mysql_num_rows($resultado);
//echo "<br>Total: ".$total[0]."<br>";



/* Numero de registros que se desean por pagina */
$pag_max=10;

/* Calculo de las paginas */
$pg_num=$total[0] / $pag_max; $pg_num=ceil($pg_num);

/* 'pg' se usa para diseminar el # de pagina que nos encontramos (al principio no existira) */
if (!isset($_REQUEST['pg'])) 
{
    
$pg = 1;
    
$in = 0; 
}
else if(
$_REQUEST['pg'] == 1)
{ 
    
$in=0;
    
$pg=$_REQUEST['pg']; 
}
else if(
$_REQUEST['pg']>1)
{
    
$pg = $_REQUEST['pg']; 
    
$in = $pg - 1; 
    
$in = $in * $pag_max; 
}

?>
<html>
<head>
<title>Paginador</title>
</head>
<body>
  <?
/*
Para el LIMIT de la consulta que arrojar los datos de la pagina se usa $in (desde) $pag_max (maximo a mostrar)
Ej: SELECT * FROM tabla LIMIT $in, $pag_max
*/


/* Paginador */
if(isset($pg))
{
    
$paginas_adelante   =5;      // Paginas que se veran adelante de actual
    
$paginas_atras      =5;      // Paginas que se veran detras de actual
                     
   /* Paginas */
   //echo '<div style="border:1px solid black; float:left; padding:5px;">Página '.$pg.' de '.$pg_num.'</div><div style="float:left; width:5px;"></div>';

   /* Primera pagina */
   //if($pg>1)
   //{
      
echo '<div style="border:1px solid black; float:left; padding:5px;"><a href="'.$nombre.'?pg=1"><b><<</b></a></div>';   
   
//}

   /* Atras */
   
if($pg>1)
   {
      if(
$pg>$paginas_atras)
      {
         
$desde=$pg - $paginas_atras;
      }
      else
      {
         
$desde=1;
      }
      
$hasta=$pg - 1;
      for(
$x=$desde; $x<=$hasta; $x++)
      {
        
$query = "SELECT hk FROM textos WHERE pagina=$x ORDER BY id ASC";
        
$result = mysql_query($query); 
        if (
mysql_error()) echo mysql_error()."<br>";
        while (
$rows = mysql_fetch_array($result))
        {
            
$hkpage = $rows['hk'];
        }
         echo 
'<div style="float:left; padding:5px;"><a href="'.$nombre.'?pg='.$x.'"><b>'.$hkpage.'</b></a></div>';
      }                     
   }

   
/* Pagina actual */
    
$query = "SELECT hk FROM textos WHERE pagina=$pg ORDER BY id ASC";
    
$result = mysql_query($query); 
    if (
mysql_error()) echo mysql_error()."<br>";
    while (
$rows = mysql_fetch_array($result))
    {
        
$hkpage = $rows['hk'];
    }
   echo 
'<div style="border:1px solid black; float:left; padding:5px;"><a href="http://www.xxxxxx.com.ar/'.$hkpage.'">'.$hkpage.'</a></div>';   
                     
   
/* Adelante */
   
if($pg<$pg_num)
   {
      
$limite=$pg+$paginas_adelante;
      
$s=$pg + 1;
      for(
$x=$s; $x<=$limite; $x++)
      {
         if(
$x<=$pg_num)
         {
            
$query = "SELECT hk FROM textos WHERE pagina=$x ORDER BY id ASC";
            
$result = mysql_query($query); 
            if (
mysql_error()) echo mysql_error()."<br>";
            while (
$rows = mysql_fetch_array($result))
            {
                
$hkpage = $rows['hk'];
            }
            echo 
'<div style="float:left; padding:5px;"><a href="'.$nombre.'?pg='.$x.'"><b>'.$hkpage.'</b></a></div>';                           
         }
      }                     
   }

   
/* Ultima pagina */
   
if($pg<$pg_num)
   {
      echo 
'<div style="border:1px solid black; float:left; padding:5px;"><a href="'.$nombre.'?pg='.$pg_num.'"><b>>></b></a></div>';   
   }
}

// Aca listo los datos de la consulta

echo "<br><br>";
$query = "SELECT distinct(hk) FROM textos WHERE paginadep=$pg ORDER BY paginadep,id ASC";
$result = mysql_query($query); 
if (
mysql_error()) echo mysql_error()."<br>";

?>
  
</p>
<table width="300" border="1" cellspacing="0" cellpadding="0">
<?php
$link
=1;
while (
$rows = mysql_fetch_array($result))
{
    if (
$link==1) { $hklink=$rows['hk']; $link=0;}
    
$hk = $rows['hk'];
    echo 
'<tr>';
    echo 
'<td><div align="center">'.$hk.'</div></td>';
    echo 
'</tr>';
}

// Fin listado

?>
</table>
</body>
</html>

este es un codigo que encontre que servia para html y lo modifiqu todo para usarlo con mysql

la idea es que la pagina actual el link sea como lo puse yo, apuntando a una web http
y las demas palabras funcionen con ajax para paginar el resultado