Foros del Web » Programando para Internet » PHP »

Ayuda en paginacion

Estas en el tema de Ayuda en paginacion en el foro de PHP en Foros del Web. Hola , abro este tema para ver si me pueden ayudar , mi problema es este: tengo una paginacion de los registros , anda perfecto ...
  #1 (permalink)  
Antiguo 14/01/2009, 19:32
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Exclamación Ayuda en paginacion

Hola , abro este tema para ver si me pueden ayudar , mi problema es este: tengo una paginacion de los registros , anda perfecto , pero el link hacia el registro es por el nombre y si agrego otro registro con el mismo nombre de alguno que haya en la base de datos no lo registra , les dejo mi archivo de paginacion y el que muestra los registros:


PAGINAR


Código PHP:
<html>
<head><title>Microftonic! - Agregar</title>

</head>

<?

# Funcion para conectar a la base de datos
function conectar($host,$user,$pass,$db){
$link = @mysql_connect($host,$user,$pass) or die("Error Conectando a la Base de datos");
@
mysql_select_db($db,$link) or die("Error Seleccionando base de datos.");
return 
$link;
}

$host "localhost";
$user "user";
$pass "pass";
$db "BD";

# Se crea la variable $link que es para identificar la coneccion
# a la base de datos
$link conectar($host,$user,$pass,$db);

# aqui colocan la tabla que se utilizara para
# extraer los registros y paginarlos
$tabla "posts";

# aqui se extrae la cantidad de registros totales
$rsC mysql_query("Select count(*) from ".$tabla);
$resultC mysql_fetch_array($rsC);
$count $resultC[0];

# Aqui se pone la cantidad de registros por pagina
# que se quieren mostrar
$hasta 15;

if(
$pag==""){
 
$desde 0;
 
$pag 1;    
}
else{
 
$pag $_GET["pag"];
 
$pagS $pag 1;
 
$desde $hasta $pagS;    
}

$rs mysql_query("SELECT * FROM posts ORDER BY fecha DESC"); 
if(
$count!=0){ 
 while(
$result=mysql_fetch_array($rs)){ 


    

echo 
"<a href='post.php?post=".$result['id']."'>".$result['nombre']."</a><br>\n";
         

     
  
# fin del despliegue personalizado. 
 


else{ 
 echo 
"No tenemos registros.";     
}  
mysql_close($link);

# aqui se llama a la funcion que muestra los links por paginas
# la variable $extra_variables es para anexar mas variables al url
# si es necesario para los querys que hagan.
# Solo se debe concatenar los datos nombre1=valor1&nombre2=value2
# NOTA: puede ubicar en cualquier parte de su codigo esta funcion
# para que aparesca dentro de la celda que desee.
# link totales es una variable al ser definida le dices a la funcion
# cuantos links quieres que aparescan por pantalla ya que si tienes
# 100 paginas no deberas ver los 100 links y solo muestres los necesarios
$link_totales 4;
# se llama la funcion paginar
# los links si tiene un css podran tomar la estructura y color que le pongas
## Inicia Paginador
paginar($count,$hasta,$pag,$link_totales,$extra_variables);

# Funcion paginar
# Inicia
function paginar($count,$hasta,$pag,$link_totales,$extra_variables){
    if(
$link_totales==1)$link_totales=2;
    
$links $count $hasta;
    
$arriba $link_totales 2;
    
$abajo $pag 1;
    if(
$abajo==0)$abajo 1;
    
$temp_r $links $pag;
    if(
$temp_r>=$arriba){
     
$link_break $pag $arriba;
    }
    else{
     
$link_break $links;
     
$abajo $pag $arriba;
     if(
$pag==$links-1)$abajo $pag $arriba;
     if(
$pag==$links)$abajo $pag $arriba;
    }
    
    if(
$pag==1)$link_break $link_totales;
    if(
$abajo==0)$abajo=1;
    if(
strlen($extra_variables)!=0$extra_variables "&".$extra_variables;
    
    if(
$pag==1){
     
$anterior 1;    
    }
    else{
    
$anterior $pag 1;    
    }
    if(
$pag!=1){
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$anterior.$extra_variables."><< Anterior | </a>";
    }
    
    for(
$i=$abajo;$i<=$links;$i++){
     if(
$link_break<$i){
      break;
     }
     else{
        if(
$pag==$i){
        echo 
$i." | ";    
        }
        else{
        echo 
"<a href='".$_SERVER['PHP_SELF']."?pag=".$i.$extra_variables."'>";
        echo 
$i;
        echo 
" | </a>";
        }
     }
    }
    if(
$pag==$links){
    
$siguiente $links;
    }
    else{
    
$siguiente $pag 1;
    }
    if(
$pag!=$links){
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$siguiente.$extra_variables.">Siguiente >></a>";
    }
}
?>


REGISTRO


Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="es">
<head>
<title>Microftonic!</title>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/screen.css" type="text/css" rel="stylesheet" media="screen,projection" />
<!--[if lte IE 6]><link href="css/msie.css" type="text/css" rel="stylesheet" media="screen,projection" /><![endif]-->
<link rel="stylesheet" media="print" type="text/css" href="css/print.css" />
</head>
<body>
<? include("config.php");
   
 
?>

<div id="wrap">
  <div id="layout">
    <div id="header">
      <div id="logo">
        <div id="logo-left"></div>
        <h1><a href="http://www.free-css.com/">Blue<span class="light">Web</span><span id="logo-arrow">&nbsp;</span><span id="shadow">&nbsp;</span></a></h1>
        <div id="logo-right"></div>
      </div>
      <hr class="noscreen" />
      <p class="noscreen noprint"> <em>Rychlá navigace: <a href="http://www.free-css.com/">obsah</a>, <a href="http://www.free-css.com/">navigace</a>.</em> </p>
      <hr class="noscreen" />
      <div id="nav" class="box">
        <ul>
          <li id="active">
            <div class="nav-left"></div>
            <a href="http://www.free-css.com/"> Principal<span class="arrow">&nbsp;</span> <span class="shadow">&nbsp;</span> </a>
            <div class="nav-right"></div>
          </li>
          <li>
            <div class="nav-left"></div>
            <a href="http://www.free-css.com/"> About me <span class="arrow">&nbsp;</span> <span class="shadow">&nbsp;</span> </a>
            <div class="nav-right"></div>
          </li>
          <li>
            <div class="nav-left"></div>
            <a href="http://www.free-css.com/"> Portfolio <span class="arrow">&nbsp;</span> <span class="shadow">&nbsp;</span> </a>
            <div class="nav-right"></div>
          </li>
          <li>
            <div class="nav-left"></div>
            <a href="http://www.free-css.com/"> Contact <span class="arrow">&nbsp;</span> <span class="shadow">&nbsp;</span> </a>
            <div class="nav-right"></div>
          </li>
        </ul>
        <hr class="noscreen" />
      </div>
    </div>
    <div id="container" class="box">
      <div id="obsah" class="content box">
        <div class="in">
          <div id="position">
            <h2>&nbsp;</h2>
            <div>
              <p> <? include("config.php"); 
          include(
"pfvariables.php");
 


$rs mysql_query("select * from posts WHERE nombre ='".$_GET['nombre']."'");
$result mysql_fetch_array($rs);
echo 
$result['mensaje'];  
 
?> &nbsp;</p>
            </div>
            <p class="extra"><a href="http://www.free-css.com/" class="f-left"></a> <a href="http://www.free-css.com/" class="f-left center"></a> <a href="http://www.free-css.com/" class="f-left"></a>            </p>
            <h3>&nbsp;</h3>
            </div>
        </div>
      </div>
      <div id="panel-right" class="box panel">
        <div id="panel-bg">
          <div class="in">
            <div id="panel-position">
              <h5>Posteado por: <?echo $result['nick'];?></h5>
              <ul><li><p><center> <?
    
include ("redimensionar.php"); /*ruta relativa del archivo 
                                          que contiene la función*/

    
$userinfo[avatar] = $result['avatar']; /*ruta relativa de la 
                                          imagen a mostrar*/

    
redimensionar($userinfo[avatar],200,200);  ?> </center>

                     
    <strong> </strong></center>




                          </ul></li>
                
              </ul>
              <h5>Entries by month</h5>
              <ul>
                <li><a href="http://www.free-css.com/">July 2008</a></li>
                <li><a href="http://www.free-css.com/" class="panel-active">June 2008</a></li>
                <li><a href="http://www.free-css.com/">May 2008</a></li>
                <li><a href="http://www.free-css.com/">April 2008</a></li>
              </ul>
            </div>
          </div>
        </div>
        <a href="http://www.tvorimestranky.cz" id="webdesign"><strong>Copyrigth</strong></a>: <a href="http://www.tvorimestranky.cz" id="ts">Lautaro Martino </a> </div>
    </div>
  </div>
</div>

</body>
</html>






Espero que me hayan entendido , lo que quisiera lograr seria esto :

AHORA -> http://sitio.com/post.php?nombre=ASSDADSD

OBJETIVO -> http://sitio.com/post.php?id=45


PD: quiero poner su ID para que al haber dos registros con el mismo nombre , lo registre igualmente. Espero que me hayan entendido...


un abrazo , muchas gracias
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #2 (permalink)  
Antiguo 14/01/2009, 21:34
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda en paginacion

Cuál es el problema?

Código PHP:
echo "<a href='post.php?post=".$result['id']."'>".$result['nombre']."</a><br>\n"
Es ahí donde generas los links, cierto? Basta con reescribir o editar la URL para que quede como la deseas.

  #3 (permalink)  
Antiguo 15/01/2009, 11:35
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Ayuda en paginacion

muchas gracias por responder okram , justo eso es lo que habia probado y el problema es que al acceder al link , el div donde debe salir el registro se ve en blanco , es decir la URL queda justo como yo lo quiero pero no se ve el registro al acceder :(









PD: SOLUCIONADO , TE DEJO KARMA OKRAM ;)
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos

Última edición por tata009; 15/01/2009 a las 12:27
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 11:12.