Foros del Web » Programando para Internet » PHP »

Salen varios errores al realizar la consulta - Intento de paginación

Estas en el tema de Salen varios errores al realizar la consulta - Intento de paginación en el foro de PHP en Foros del Web. Antes de nada, comentar que estoy utilizando el código que aparece en la siguiente web: http://www.forosdelweb.com/wiki/PHP:_%C2%BFC%C3%B3mo_Paginar_Registros_de_una_base _de_datos%3F Lo he intentado adaptar a mi situación, con ...
  #1 (permalink)  
Antiguo 18/04/2011, 09:38
UsuarioArroba
Invitado
 
Mensajes: n/a
Puntos:
Salen varios errores al realizar la consulta - Intento de paginación

Antes de nada, comentar que estoy utilizando el código que aparece en la siguiente web: http://www.forosdelweb.com/wiki/PHP:_%C2%BFC%C3%B3mo_Paginar_Registros_de_una_base _de_datos%3F

Lo he intentado adaptar a mi situación, con el siguiente codigo:

Código:
<?php
########################################################
## PAGINAR REGISTROS
## POR: Marco A. Castillo
## EMAIL: [email protected]
########################################################
 
# 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 = "root";
$pass = "";
$db = "dieta";
 
# 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 = "comentarios";
 
# 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 = 2;
 
if($pag==""){
 $desde = 0;
 $pag = 1;    
}
else{
 $pag = $_GET["pag"];
 $pagS = $pag - 1;
 $desde = $hasta * $pagS;    
}
 
$rs = mysql_query("select * from ".$tabla." limit $desde,$hasta");
if($count!=0){
 while($result=mysql_fetch_array($rs)){
echo '<br /><hr><br />';
echo '<b><u>' . $result['nick'] . '</u>' . ' dijo:</b><br /><br />' . $result['texto'] . '<br />';
  echo $result["licencia"]."<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 + 1 - $arriba;
     if($pag==$links-1)$abajo = $pag - $arriba;
     if($pag==$links)$abajo = $pag - 1 - $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>";
    }
}
?>
En mi base de datos "dieta", está la tabla "comentarios" que contiene 3 campos (id, nick y texto). Ingrese 5 comentarios:

id nick texto
-----------------------------------
14 Nick 1 Comentario 1
15 Nick 2 Comentario 2
16 Nick 3 Comentario 3
17 Nick 4 Comentario 4
18 Nick 5 Comentario 5

Solo he agregado los datos de mi base de datos y tabla. Ademas, le he puesto la parte donde se muestran los resultados a mi gusto.

Cuando lo coloco en el directorio www de WampServer y lo miro en localhost, me da unos cuantos de errores:


( ! ) Notice: Undefined variable: pag in D:\wamp\www\dieta\mostrar2.php on line 37
Call Stack
# Time Memory Function Location
1 0.0016 395112 {main}( ) ..\mostrar2.php:0


Nick1 dijo:

Comentario 1

( ! ) Notice: Undefined index: licencia in D:\wamp\www\dieta\mostrar2.php on line 52
Call Stack
# Time Memory Function Location
1 0.0016 395112 {main}( ) ..\mostrar2.php:0



Nick2 dijo:

Comentario 2

( ! ) Notice: Undefined index: licencia in D:\wamp\www\dieta\mostrar2.php on line 52
Call Stack
# Time Memory Function Location
1 0.0016 395112 {main}( ) ..\mostrar2.php:0


( ! ) Notice: Undefined variable: extra_variables in D:\wamp\www\dieta\mostrar2.php on line 74
Call Stack
# Time Memory Function Location
1 0.0016 395112 {main}( ) ..\mostrar2.php:0
1 | 2 | Siguiente >>


Ademas, si pulso Siguiente, sigue mostrando únicamente los dos primeros resultados, no los siguientes 2.

Agradeceria mucho vuestra ayuda para localizar donde está el error. Gracias.
  #2 (permalink)  
Antiguo 18/04/2011, 10:07
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Salen varios errores al realizar la consulta - Intento de paginación

Amigo si te fijas bien no son ERRORES son NOTICIAS utiliza el buscador como poder setear las noticias que genera apache en OFF
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 18/04/2011, 10:58
UsuarioArroba
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Salen varios errores al realizar la consulta - Intento de paginación

Bien, he logrado desactivar las noticias, pero sigo con el problema de que solo muestra los 2 primeros resultados y aunque haga clic en el enlace "Siguiente" no cambia de pagina. Se dirige a "mostrar2.php?pag=2, pero sigue mostrando los mismos dos comentarios. Adjunto dos imágenes para que se vea mas claro. En la primera, simplemente cargo "mostrar2.php". La segunda es el resultado de hacer clic en el enlace "Siguiente".

En ambas imágenes, el 1 no es enlace, después sale la barra y el enlace, formado por "2 | Siguiente >>" que apunta a mostrar2.php?pag=2. Ademas, solo muestra los dos comentarios esos, no sirve de nada hacer clic porque no cambia a los 2 comentarios siguientes.





Con solucionar esto ya podría dar por terminada la web y empezar a subirla al servidor. Estaría muy agradecido si pudierais echarme un cable para solucionarlo. Saludos.

Etiquetas: mysql, paginacion
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

SíEste tema le ha gustado a 1 personas




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