Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 10 de 10

Tema: Paginar resultados de la base de datos con AJAX

  1. #1
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17

    Paginar resultados de la base de datos con AJAX

    Hola!!

    Bueno, tengo un sistema de comentarios, y para que no se muestren todos seguidos quería paginarlos, mostrar los comentarios en varias páginas de 10 comentarios cada una, pero que para cambiar de página en página no haya que refrescar, así que busqué y encontré algo en AJAX que podía servir.

    Los códigos quedaron así:

    paginador.php (Aquí mostramos los comentarios paginados pero sin estilos, luego pongo por qué)
    Código:
    <?php
    
    
    function expresiones($comentario) { 
    $comentario = str_replace(":D","<img src=iconos/icono1.jpg>", $comentario);
    $comentario = str_replace(":d","<img src=iconos/icono1.jpg>", $comentario);
    $comentario = str_replace(":-d","<img src=iconos/icono1.jpg>", $comentario);
    $comentario = str_replace(":-D","<img src=iconos/icono1.jpg>", $comentario);
    $comentario = str_replace(":P","<img src=iconos/icono2.jpg>", $comentario);
    $comentario = str_replace(":-P","<img src=iconos/icono2.jpg>", $comentario);
    $comentario = str_replace(":p","<img src=iconos/icono2.jpg>", $comentario);
    $comentario = str_replace(":-p","<img src=iconos/icono2.jpg>", $comentario);
    $comentario = str_replace(":(","<img src=iconos/icono3.jpg>", $comentario);
    $comentario = str_replace(":-(","<img src=iconos/icono3.jpg>", $comentario);
    $comentario = str_replace(":O","<img src=iconos/icono4.jpg>", $comentario);
    $comentario = str_replace(":-O","<img src=iconos/icono4.jpg>", $comentario);
    $comentario = str_replace(":o","<img src=iconos/icono4.jpg>", $comentario);
    $comentario = str_replace(":-o","<img src=iconos/icono4.jpg>", $comentario);
    $comentario = str_replace("-.-","<img src=iconos/icono5.jpg>", $comentario);
    $comentario = str_replace("-_-","<img src=iconos/icono5.jpg>", $comentario);
    $comentario = str_replace(":@","<img src=iconos/icono6.jpg>", $comentario);
    $comentario = str_replace(":-@","<img src=iconos/icono6.jpg>", $comentario);
    $comentario = str_replace(":?","<img src=iconos/icono7.jpg>", $comentario);
    $comentario = str_replace(":-?","<img src=iconos/icono7.jpg>", $comentario);
    $comentario = str_replace(":X","<img src=iconos/icono8.jpg>", $comentario);
    $comentario = str_replace(":-X","<img src=iconos/icono8.jpg>", $comentario);
    $comentario = str_replace(":x","<img src=iconos/icono8.jpg>", $comentario);
    $comentario = str_replace(":-x","<img src=iconos/icono8.jpg>", $comentario);
    return $comentario; 
    }
    
    
    ?>
    
    
    <?php
     require('conexion.php');
     $RegistrosAMostrar=10;
    
    
    $id = $_GET[id];
    $id = strip_tags($id);
    
    
    $pag = $_GET[pag];
    $pag = strip_tags($pag);
    
    
    if ($pag < 0){
    header ("location: http://miweb.com");
    }
    
    
    if ($pag == 0){
    header ("location: http://miweb.com");
    }
    
    
     //estos valores los recibo por GET
     if(empty($pag)){
      $RegistrosAEmpezar=0;
      $PagAct=$pag;
      header ("location: http://miweb.com/novedad.php?id=$id&pag=1");
      //caso contrario los iniciamos
     }else{
      $RegistrosAEmpezar=0;
      $PagAct=$pag;
     }
    
    
     $Resultado=mysql_query("SELECT * FROM comentarios WHERE id=$id ORDER BY fecha ASC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con);
    if (mysql_num_rows($Resultado)) {
       while ($qry = mysql_fetch_array($Resultado)) {
    
    
    $fecha=isset($_GET['fecha'])?$_GET['fecha']:date("Y-m-d");
    list($ano,$mes,$dia)=explode("-",$qry[fecha]);
    $meses=array('Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic');
    $mes=$meses[$mes-1];
    
    
    $fecha2=isset($_GET['edicion'])?$_GET['edicion']:date("Y-m-d");
    list($ano2,$mes2,$dia2)=explode("-",$qry[edicion]);
    $meses2=array('1','2','3','4','5','6','7','8','9','10','11','12');
    $mes2=$meses2[$mes2-1];
    
    
    $nick = strip_tags($qry[nick]);
    $nick = htmlentities($nick);
    $nick = ucfirst($nick);
    
    
    $comentario = strip_tags($qry[comentario]);
    $comentario = htmlentities($comentario);
    $comentario = expresiones($comentario);
    $idcomentario = strip_tags($qry[idcomentario]);
    
    
    $qry2 = mysql_fetch_array( mysql_query( "SELECT * FROM comentarios WHERE idcomentario = $idcomentario" ) );
    
    
    if( $qry['tipo'] == "normal" ) {
    
    
    echo "<li class='comment even thread-even depth-1' id='li-comment-$idcomentario'> 
            <div id='comment-$idcomentario'> 
            <div class='author vcard' style='width: 201px;'> 
                <div class='date'><span class='day'>$dia</span> <span class='month'>$mes</span> <span class='year'>$ano</span></div> 
                <!--<img alt='' src='http://0.gravatar.com/avatar/6d72f2841cfd866e5202457a5763bbda?s=45&amp;d=http%3A%2F%2Fwww.danielabril.net%2Fwordpress%2Fwp-content%2Fthemes%2Fminics%2Fimages%2Fdefault_avatar.png&amp;r=G' class='avatar avatar-45 photo' height='45' width='45' />--><img src='http://www.miwbe.com/avatars/$nick-XS.jpg' alt='' class='avatar avatar45-photo' height='45' width='45' /><img src='http://www.miwbe.com/img/saysomething.gif' class='saysomething' alt='arrow' height='45' /> 
                <cite class='authName fn'>$nick</cite>        </div><!-- .comment-author .vcard --> 
            
            <div class='comment-body'> 
                
                <p>$comentario</p><br /><br />
                <div class='comment-meta'> 
                    Publicado a las $qry[hora]";
    } else {
    echo "<li class='comment even thread-even depth-1' id='li-comment-$idcomentario'> 
            <div id='comment-$idcomentario'> 
            <div class='author2'> 
                <div class='date'><span class='day'>$dia</span><span class='month2'>$mes</span><span class='year2'>$ano</span></div> 
                <!--<img alt='' src='http://0.gravatar.com/avatar/6d72f2841cfd866e5202457a5763bbda?s=45&amp;d=http%3A%2F%2Fwww.danielabril.net%2Fwordpress%2Fwp-content%2Fthemes%2Fminics%2Fimages%2Fdefault_avatar.png&amp;r=G' class='avatar avatar-45 photo' height='45' width='45' />--><img src='http://www.miwbe.com/avatars/$nick-XS.jpg' alt='' class='avatar avatar45-photo' height='45' width='45' /><!--
    <!--<img src='flecha.jpg' class='saysomething' alt='arrow' height='45' />--><img src='http://www.miwbe.com/img/saysomething.gif' class='saysomething' alt='arrow' height='45' /> 
                <cite class='authName2'>$nick</cite>        </div><!-- .comment-author .vcard --> 
            
            <div class='comment-body2'> 
                
                <p>$comentario</p> 
                <div class='comment-meta'><br /><br /> 
                    Publicado a las $qry[hora]";
    }
    
    
    $qry = mysql_fetch_array( mysql_query( "SELECT * FROM comentarios WHERE idcomentario = $idcomentario" ) );
    
    
    if( !empty( $qry['edicion'] ) )
      echo " | <small><b>Última edición: <u>$dia2/$mes2/$ano2</u> a las <u>$qry[horaedicion]</u></b></small>";
    
    
    echo "</div><!-- .comment-meta .commentmetadata --> 
            </div> 
     
            <!--<div class='reply'>
                        </div>--><!-- .reply --> 
        </div><!-- #comment-##  --> 
     
        </li>";  
    }
    }
    
    
     //******--------determinar las páginas---------******//
     $NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM comentarios WHERE id=$id"));
     $NroRegistros=strip_tags($NroRegistros);
     $PagAnt=$PagAct-1;
     $PagAnt=strip_tags($PagAnt);
     $PagSig=$PagAct+1;
     $PagSif=strip_tags($PageSig);
     $PagUlt=$NroRegistros/$RegistrosAMostrar;
     $PagUlt=strip_tags($PagUlt);
    
    
     if($pag>$PagUlt){
     header ("location: http://miweb.com");
     }
    
    
     //verificamos residuo para ver si llevará decimales
     $Res=$NroRegistros%$RegistrosAMostrar;
     $Res=strip_tags($Res);
     // si hay residuo usamos funcion floor para que me
     // devuelva la parte entera, SIN REDONDEAR, y le sumamos
     // una unidad para obtener la ultima pagina
     if($Res>0) $PagUlt=floor($PagUlt)+1;
     $PagUlt=strip_tags($PagUlt);
     
     //desplazamiento
     if($PagAct==1){
    echo "<h3 class='comments-title'>";
    }
     if($PagAct>1){
    echo "<h3 class='comments-title'><a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('1')\">&laquo; Primera</a> ";
    echo "<a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('$PagAnt')\">Anterior</a> ";
    }
     echo "<strong>Página $PagAct de $PagUlt</strong>";
    
    
     if($PagAct<$PagUlt){
     echo " <a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('$PagSig')\">Siguiente</a> ";
    }
     echo "<a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('$PagUlt')\">Última &raquo;</a></h3>";
    ?>
    Luego, donde quiero mostrar los comentarios paginados, añado en el head:
    Código:
    <script language="javascript" type="text/javascript" src="ajax.js"></script>
    Y para ponerlos en el sitio que quiero añado esto:
    Código:
    include ("paginador.php");
    Y ya pone los comentarios.

    Hasta ahí todo bien, sólo se ven 15 comentarios y me aparece el número total de páginas, por la que voy, etc...
    Si le doy a la página siguiente, lo que tenía que hacer es mostrar los próximos 15 comentarios y quitarse los 15 primeros pero... se quitan los 15 primeros y en vez de mostrar los 15 siguientes no aparece nada donde deberían aparecer.

    El archivo al que llamo, ajax.js, tiene este código:
    Código:
    function objetoAjax(){
     var xmlhttp=false;
      try{
       xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      }catch(e){
       try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
       }catch(E){
        xmlhttp = false;
       }
      }
      if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
       xmlhttp = new XMLHttpRequest();
      }
      return xmlhttp;
    }
    
    
    function Pagina(nropagina){
     //donde se mostrará los registros
     divContenido = document.getElementById('commentlist');
     
     ajax=objetoAjax();
     //uso del medoto GET
     //indicamos el archivo que realizará el proceso de paginar
     //junto con un valor que representa el nro de pagina
     ajax.open("GET", "paginador.php?pag="+nropagina);
     divContenido.innerHTML= 'Cargando los siguientes comentarios...';
     ajax.onreadystatechange=function() {
      if (ajax.readyState==10) {
       //mostrar resultados en esta capa
       divContenido.innerHTML = ajax.responseText
      }
     }
     //como hacemos uso del metodo GET
     //colocamos null ya que enviamos 
     //el valor por la url ?pag=nropagina
     ajax.send(null)
    }
    Alguien me ilumina en este camino sin luz?
    Última edición por Doodleo; 26/11/2011 a las 18:01

  2. #2
    Me va gustando esto... Habitante Avatar de SurKaiser
    Fecha de Ingreso
    15 oct, 11
    Mensajes
    256
    Poder de Reputación
    10
    Bien mirando por encima tienes esto :

    divContenido.innerHTML= 'Cargando los siguientes comentarios...';
    ajax.onreadystatechange=function() {
    if (ajax.readyState==10) {
    //mostrar resultados en esta capa
    divContenido.innerHTML = ajax.responseText
    }
    }

    solo haces el divContenido nuevo se muestre en pantalla pero no borras los comentarios antes ingresados, aqui puedes usar el removeChild y esas funciones, para ver mejor y saber cual es el problema muestrame el html generado el codigo fuente que genera tu paginacion con ajax, asi podre ver que elementos tiene y como eliminarlos e ingresar nuevos elementos

    Saludos!
    Mi web en construccion :
    surkaiser . com . es
    "El conocimiento es Poder"

  3. #3
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    Vale hice algunos cambios al código al que tenía antes, ahora ni quita los comentarios ni muestra los nuevos

    Si te sirve lo encontré aquí: http://www.ribosomatic.com/articulos...ql-php-y-ajax/

  4. #4
    Me va gustando esto... Habitante Avatar de SurKaiser
    Fecha de Ingreso
    15 oct, 11
    Mensajes
    256
    Poder de Reputación
    10
    Haber he revisado el codigo de la web que me mandaste lo probe y todo va bien , eso quiere decir que modificaste algo
    aparentemente en las primeras lineas que analize de tu codigo hay un error aun revisando pero no esta demas que intentes con este:

    paginador.php

    Código PHP:
    <?php


    function expresiones($comentario) { 
    $comentario str_replace(":D","<img src=iconos/icono1.jpg>"$comentario);
    $comentario str_replace(":d","<img src=iconos/icono1.jpg>"$comentario);
    $comentario str_replace(":-d","<img src=iconos/icono1.jpg>"$comentario);
    $comentario str_replace(":-D","<img src=iconos/icono1.jpg>"$comentario);
    $comentario str_replace(":P","<img src=iconos/icono2.jpg>"$comentario);
    $comentario str_replace(":-P","<img src=iconos/icono2.jpg>"$comentario);
    $comentario str_replace(":p","<img src=iconos/icono2.jpg>"$comentario);
    $comentario str_replace(":-p","<img src=iconos/icono2.jpg>"$comentario);
    $comentario str_replace(":(","<img src=iconos/icono3.jpg>"$comentario);
    $comentario str_replace(":-(","<img src=iconos/icono3.jpg>"$comentario);
    $comentario str_replace(":O","<img src=iconos/icono4.jpg>"$comentario);
    $comentario str_replace(":-O","<img src=iconos/icono4.jpg>"$comentario);
    $comentario str_replace(":o","<img src=iconos/icono4.jpg>"$comentario);
    $comentario str_replace(":-o","<img src=iconos/icono4.jpg>"$comentario);
    $comentario str_replace("-.-","<img src=iconos/icono5.jpg>"$comentario);
    $comentario str_replace("-_-","<img src=iconos/icono5.jpg>"$comentario);
    $comentario str_replace(":@","<img src=iconos/icono6.jpg>"$comentario);
    $comentario str_replace(":-@","<img src=iconos/icono6.jpg>"$comentario);
    $comentario str_replace(":?","<img src=iconos/icono7.jpg>"$comentario);
    $comentario str_replace(":-?","<img src=iconos/icono7.jpg>"$comentario);
    $comentario str_replace(":X","<img src=iconos/icono8.jpg>"$comentario);
    $comentario str_replace(":-X","<img src=iconos/icono8.jpg>"$comentario);
    $comentario str_replace(":x","<img src=iconos/icono8.jpg>"$comentario);
    $comentario str_replace(":-x","<img src=iconos/icono8.jpg>"$comentario);
    return 
    $comentario
    }


    ?>


    <?php
     
    require('conexion.php');
     
    $RegistrosAMostrar=10;


    $id $_GET[id];
    $id strip_tags($id);


    $pag $_GET[pag];
    $pag strip_tags($pag);


    if (
    $pag 0){
    header ("location: http://miweb.com");
    }


    if (
    $pag == 0){
    header ("location: http://miweb.com");
    }


     
    //estos valores los recibo por GET
     
    if(isset($pag)){
      
    $RegistrosAEmpezar=($pag-1)*$RegistrosAMostrar;

      
    $PagAct=$pag;
      
    header ("location: http://miweb.com/novedad.php?id=$id&pag=1");
      
    //caso contrario los iniciamos
     
    }else{
      
    $RegistrosAEmpezar=0;
      
    $PagAct=$pag;
     }


     
    $Resultado=mysql_query("SELECT * FROM comentarios WHERE id=$id ORDER BY fecha ASC LIMIT $RegistrosAEmpezar$RegistrosAMostrar",$con);
    if (
    mysql_num_rows($Resultado)) {
       while (
    $qry mysql_fetch_array($Resultado)) {


    $fecha=isset($_GET['fecha'])?$_GET['fecha']:date("Y-m-d");
    list(
    $ano,$mes,$dia)=explode("-",$qry[fecha]);
    $meses=array('Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic');
    $mes=$meses[$mes-1];


    $fecha2=isset($_GET['edicion'])?$_GET['edicion']:date("Y-m-d");
    list(
    $ano2,$mes2,$dia2)=explode("-",$qry[edicion]);
    $meses2=array('1','2','3','4','5','6','7','8','9','10','11','12');
    $mes2=$meses2[$mes2-1];


    $nick strip_tags($qry[nick]);
    $nick htmlentities($nick);
    $nick ucfirst($nick);


    $comentario strip_tags($qry[comentario]);
    $comentario htmlentities($comentario);
    $comentario expresiones($comentario);
    $idcomentario strip_tags($qry[idcomentario]);


    $qry2 mysql_fetch_arraymysql_query"SELECT * FROM comentarios WHERE idcomentario = $idcomentario) );


    if( 
    $qry['tipo'] == "normal" ) {


    echo 
    "<li class='comment even thread-even depth-1' id='li-comment-$idcomentario'> 
            <div id='comment-
    $idcomentario'> 
            <div class='author vcard' style='width: 201px;'> 
                <div class='date'><span class='day'>
    $dia</span> <span class='month'>$mes</span> <span class='year'>$ano</span></div> 
                <!--<img alt='' src='http://0.gravatar.com/avatar/6d72f2841cfd866e5202457a5763bbda?s=45&amp;d=http%3A%2F%2Fwww.danielabril.net%2Fwordpress%2Fwp-content%2Fthemes%2Fminics%2Fimages%2Fdefault_avatar.png&amp;r=G' class='avatar avatar-45 photo' height='45' width='45' />--><img src='http://www.miwbe.com/avatars/
    $nick-XS.jpg' alt='' class='avatar avatar45-photo' height='45' width='45' /><img src='http://www.miwbe.com/img/saysomething.gif' class='saysomething' alt='arrow' height='45' /> 
                <cite class='authName fn'>
    $nick</cite>        </div><!-- .comment-author .vcard --> 
            
            <div class='comment-body'> 
                
                <p>
    $comentario</p><br /><br />
                <div class='comment-meta'> 
                    Publicado a las 
    $qry[hora]";
    } else {
    echo 
    "<li class='comment even thread-even depth-1' id='li-comment-$idcomentario'> 
            <div id='comment-
    $idcomentario'> 
            <div class='author2'> 
                <div class='date'><span class='day'>
    $dia</span><span class='month2'>$mes</span><span class='year2'>$ano</span></div> 
                <!--<img alt='' src='http://0.gravatar.com/avatar/6d72f2841cfd866e5202457a5763bbda?s=45&amp;d=http%3A%2F%2Fwww.danielabril.net%2Fwordpress%2Fwp-content%2Fthemes%2Fminics%2Fimages%2Fdefault_avatar.png&amp;r=G' class='avatar avatar-45 photo' height='45' width='45' />--><img src='http://www.miwbe.com/avatars/
    $nick-XS.jpg' alt='' class='avatar avatar45-photo' height='45' width='45' /><!--
    <!--<img src='flecha.jpg' class='saysomething' alt='arrow' height='45' />--><img src='http://www.miwbe.com/img/saysomething.gif' class='saysomething' alt='arrow' height='45' /> 
                <cite class='authName2'>
    $nick</cite>        </div><!-- .comment-author .vcard --> 
            
            <div class='comment-body2'> 
                
                <p>
    $comentario</p> 
                <div class='comment-meta'><br /><br /> 
                    Publicado a las 
    $qry[hora]";
    }


    $qry mysql_fetch_arraymysql_query"SELECT * FROM comentarios WHERE idcomentario = $idcomentario) );


    if( !empty( 
    $qry['edicion'] ) )
      echo 
    " | <small><b>Última edición: <u>$dia2/$mes2/$ano2</u> a las <u>$qry[horaedicion]</u></b></small>";


    echo 
    "</div><!-- .comment-meta .commentmetadata --> 
            </div> 
     
            <!--<div class='reply'>
                        </div>--><!-- .reply --> 
        </div><!-- #comment-##  --> 
     
        </li>"
    ;  
    }
    }


     
    //******--------determinar las páginas---------******//
     
    $NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM comentarios WHERE id=$id"));
     
    $NroRegistros=strip_tags($NroRegistros);
     
    $PagAnt=$PagAct-1;
     
    $PagAnt=strip_tags($PagAnt);
     
    $PagSig=$PagAct+1;
     
    $PagSif=strip_tags($PageSig);
     
    $PagUlt=$NroRegistros/$RegistrosAMostrar;
     
    $PagUlt=strip_tags($PagUlt);


     if(
    $pag>$PagUlt){
     
    header ("location: http://miweb.com");
     }


     
    //verificamos residuo para ver si llevará decimales
     
    $Res=$NroRegistros%$RegistrosAMostrar;
     
    $Res=strip_tags($Res);
     
    // si hay residuo usamos funcion floor para que me
     // devuelva la parte entera, SIN REDONDEAR, y le sumamos
     // una unidad para obtener la ultima pagina
     
    if($Res>0$PagUlt=floor($PagUlt)+1;
     
    $PagUlt=strip_tags($PagUlt);
     
     
    //desplazamiento
     
    if($PagAct==1){
    echo 
    "<h3 class='comments-title'>";
    }
     if(
    $PagAct>1){
    echo 
    "<h3 class='comments-title'><a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('1')\">&laquo; Primera</a> ";
    echo 
    "<a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('$PagAnt')\">Anterior</a> ";
    }
     echo 
    "<strong>Página $PagAct de $PagUlt</strong>";


     if(
    $PagAct<$PagUlt){
     echo 
    " <a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('$PagSig')\">Siguiente</a> ";
    }
     echo 
    "<a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('$PagUlt')\">Última &raquo;</a></h3>";
    ?>
    Mi web en construccion :
    surkaiser . com . es
    "El conocimiento es Poder"

  5. #5
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    Con ese código no me carga la página, me dice que hace muchos bucles de redireccionamiento

  6. #6
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    Vale, ya me quita los comentarios antiguos y no me muestra los nuevos, porque me da este error:

    • Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in/home/a6136284/public_html/paginador.php on line 185
    Que viene a ser la línea remarcada:
    Código:
    $Resultado=mysql_query("SELECT * FROM comentarios WHERE id=$id ORDER BY fecha ASC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con);
    if (mysql_num_rows($Resultado)) {
    El código de paginador.php me quedó así:
    Código:
    <?php
    
    
    
    
    function expresiones($comentario) { 
    $comentario = str_replace(":D","<img src=iconos/icono1.jpg>", $comentario);
    $comentario = str_replace(":d","<img src=iconos/icono1.jpg>", $comentario);
    $comentario = str_replace(":-d","<img src=iconos/icono1.jpg>", $comentario);
    $comentario = str_replace(":-D","<img src=iconos/icono1.jpg>", $comentario);
    $comentario = str_replace(":P","<img src=iconos/icono2.jpg>", $comentario);
    $comentario = str_replace(":-P","<img src=iconos/icono2.jpg>", $comentario);
    $comentario = str_replace(":p","<img src=iconos/icono2.jpg>", $comentario);
    $comentario = str_replace(":-p","<img src=iconos/icono2.jpg>", $comentario);
    $comentario = str_replace(":(","<img src=iconos/icono3.jpg>", $comentario);
    $comentario = str_replace(":-(","<img src=iconos/icono3.jpg>", $comentario);
    $comentario = str_replace(":O","<img src=iconos/icono4.jpg>", $comentario);
    $comentario = str_replace(":-O","<img src=iconos/icono4.jpg>", $comentario);
    $comentario = str_replace(":o","<img src=iconos/icono4.jpg>", $comentario);
    $comentario = str_replace(":-o","<img src=iconos/icono4.jpg>", $comentario);
    $comentario = str_replace("-.-","<img src=iconos/icono5.jpg>", $comentario);
    $comentario = str_replace("-_-","<img src=iconos/icono5.jpg>", $comentario);
    $comentario = str_replace(":@","<img src=iconos/icono6.jpg>", $comentario);
    $comentario = str_replace(":-@","<img src=iconos/icono6.jpg>", $comentario);
    $comentario = str_replace(":?","<img src=iconos/icono7.jpg>", $comentario);
    $comentario = str_replace(":-?","<img src=iconos/icono7.jpg>", $comentario);
    $comentario = str_replace(":X","<img src=iconos/icono8.jpg>", $comentario);
    $comentario = str_replace(":-X","<img src=iconos/icono8.jpg>", $comentario);
    $comentario = str_replace(":x","<img src=iconos/icono8.jpg>", $comentario);
    $comentario = str_replace(":-x","<img src=iconos/icono8.jpg>", $comentario);
    return $comentario; 
    }
    
    
    
    
    ?>
    
    
    
    
    <?php
     require('conexion.php');
     $RegistrosAMostrar=10;
    
    
    
    
    $id = $_GET[id];
    $id = strip_tags($id);
    
    
    
    
    $pag = $_GET[pag];
    $pag = strip_tags($pag);
    
    
    
    
    if ($pag < 0){
    header ("location: http://miweb.com/novedad.php?id=$id&pag=1");
    }
    
    
    
    
    if ($pag == 0){
    header ("location: http://miweb.com/");
    }
    
    
    
    
     //estos valores los recibo por GET
     if(empty($pag)){
      $RegistrosAEmpezar=($pag-1)*$RegistrosAMostrar;
      $pag=1;
      $PagAct=strip_tags($_GET[pag]);
      //caso contrario los iniciamos
     }else{
      $RegistrosAEmpezar=0;
      $PagAct=$pag;
     }
    
    
     $Resultado=mysql_query("SELECT * FROM comentarios WHERE id=$id ORDER BY fecha ASC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con);
    if (mysql_num_rows($Resultado)) {
       while ($qry = mysql_fetch_array($Resultado)) {
    
    
    
    
    $fecha=isset($_GET['fecha'])?$_GET['fecha']:date("Y-m-d");
    list($ano,$mes,$dia)=explode("-",$qry[fecha]);
    $meses=array('Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic');
    $mes=$meses[$mes-1];
    
    
    
    
    $fecha2=isset($_GET['edicion'])?$_GET['edicion']:date("Y-m-d");
    list($ano2,$mes2,$dia2)=explode("-",$qry[edicion]);
    $meses2=array('1','2','3','4','5','6','7','8','9','10','11','12');
    $mes2=$meses2[$mes2-1];
    
    
    
    
    $nick = strip_tags($qry[nick]);
    $nick = htmlentities($nick);
    $nick = ucfirst($nick);
    
    
    
    
    $comentario = strip_tags($qry[comentario]);
    $comentario = htmlentities($comentario);
    $comentario = expresiones($comentario);
    $idcomentario = strip_tags($qry[idcomentario]);
    
    
    
    
    $qry2 = mysql_fetch_array( mysql_query( "SELECT * FROM comentarios WHERE idcomentario = $idcomentario" ) );
    
    
    
    
    if( $qry['tipo'] == "normal" ) {
    
    
    
    
    echo "<li class='comment even thread-even depth-1' id='li-comment-$idcomentario'> 
            <div id='comment-$idcomentario'> 
            <div class='author vcard' style='width: 201px;'> 
                <div class='date'><span class='day'>$dia</span> <span class='month'>$mes</span> <span class='year'>$ano</span></div> 
                <!--<img alt='' src='http://0.gravatar.com/avatar/6d72f2841cfd866e5202457a5763bbda?s=45&amp;d=http%3A%2F%2Fwww.danielabril.net%2Fwordpress%2Fwp-content%2Fthemes%2Fminics%2Fimages%2Fdefault_avatar.png&amp;r=G' class='avatar avatar-45 photo' height='45' width='45' />--><img src='http://www.miwbe.com/avatars/$nick-XS.jpg' alt='' class='avatar avatar45-photo' height='45' width='45' /><img src='http://www.miwbe.com/img/saysomething.gif' class='saysomething' alt='arrow' height='45' /> 
                <cite class='authName fn'>$nick</cite>        </div><!-- .comment-author .vcard --> 
            
            <div class='comment-body'> 
                
                <p>$comentario</p><br /><br />
                <div class='comment-meta'> 
                    Publicado a las $qry[hora]";
    } else {
    echo "<li class='comment even thread-even depth-1' id='li-comment-$idcomentario'> 
            <div id='comment-$idcomentario'> 
            <div class='author2'> 
                <div class='date'><span class='day'>$dia</span><span class='month2'>$mes</span><span class='year2'>$ano</span></div> 
                <!--<img alt='' src='http://0.gravatar.com/avatar/6d72f2841cfd866e5202457a5763bbda?s=45&amp;d=http%3A%2F%2Fwww.danielabril.net%2Fwordpress%2Fwp-content%2Fthemes%2Fminics%2Fimages%2Fdefault_avatar.png&amp;r=G' class='avatar avatar-45 photo' height='45' width='45' />--><img src='http://www.miwbe.com/avatars/$nick-XS.jpg' alt='' class='avatar avatar45-photo' height='45' width='45' /><!--
    <!--<img src='flecha.jpg' class='saysomething' alt='arrow' height='45' />--><img src='http://www.miwbe.com/img/saysomething.gif' class='saysomething' alt='arrow' height='45' /> 
                <cite class='authName2'>$nick</cite>        </div><!-- .comment-author .vcard --> 
            
            <div class='comment-body2'> 
                
                <p>$comentario</p> 
                <div class='comment-meta'><br /><br /> 
                    Publicado a las $qry[hora]";
    }
    
    
    
    
    $qry = mysql_fetch_array( mysql_query( "SELECT * FROM comentarios WHERE idcomentario = $idcomentario" ) );
    
    
    
    
    if( !empty( $qry['edicion'] ) )
      echo " | <small><b>Última edición: <u>$dia2/$mes2/$ano2</u> a las <u>$qry[horaedicion]</u></b></small>";
    
    
    
    
    echo "</div><!-- .comment-meta .commentmetadata --> 
            </div> 
     
            <!--<div class='reply'>
                        </div>--><!-- .reply --> 
        </div><!-- #comment-##  --> 
     
        </li>";  
    }
    }
    
    
    
    
     //******--------determinar las páginas---------******//
     $NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM comentarios WHERE id=$id"));
     $NroRegistros=strip_tags($NroRegistros);
     $PagAnt=$PagAct-1;
     $PagAnt=strip_tags($PagAnt);
     $PagSig=$PagAct+1;
     $PagSif=strip_tags($PageSig);
     $PagUlt=$NroRegistros/$RegistrosAMostrar;
     $PagUlt=strip_tags($PagUlt);
    
    
    
    
     //verificamos residuo para ver si llevará decimales
     $Res=$NroRegistros%$RegistrosAMostrar;
     $Res=strip_tags($Res);
     // si hay residuo usamos funcion floor para que me
     // devuelva la parte entera, SIN REDONDEAR, y le sumamos
     // una unidad para obtener la ultima pagina
     if($Res>0) $PagUlt=floor($PagUlt)+1;
     $PagUlt=strip_tags($PagUlt);
     
     //desplazamiento
     if($PagAct==1){
    echo "<h3 class='comments-title'>";
    }
     if($PagAct>1){
    echo "<h3 class='comments-title'><a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('1')\">&laquo; Primera</a> ";
    echo "<a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('$PagAnt')\">Anterior</a> ";
    }
     echo "<strong>Página $PagAct de $PagUlt</strong>";
    
    
    
    
     if($PagAct<$PagUlt){
     echo " <a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('$PagSig')\">Siguiente</a> ";
    }
    
    
     if($PagAct==$PagUlt){
    } else {
     echo "<a style='color:#006692; text-decoration:underline; cursor:pointer;' onclick=\"Pagina('$PagUlt')\">Última &raquo;</a></h3>";
    }
    ?>

  7. #7
    Me va gustando esto... Habitante Avatar de SurKaiser
    Fecha de Ingreso
    15 oct, 11
    Mensajes
    256
    Poder de Reputación
    10
    Quitale el if , solo dejale el while
    Mi web en construccion :
    surkaiser . com . es
    "El conocimiento es Poder"

  8. #8
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    Vale, he probado haciendo lo que dices pero no funciona...
    Ahora me pone dos errores en vez de uno:

    • PHP Error Message

      Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in/home/a6136284/public_html/paginador.php on line 72


      PHP Error Message

      Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in/home/a6136284/public_html/paginador.php on line 153

    La línea del primer error:
    Código:
       while ($qry = mysql_fetch_array($Resultado)) {
    La línea del segundo error:
    Código:
     $NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM comentarios WHERE id=$id"));
    Además, si en la URL pongo &pag=2 siguen mostrándose los comentarios de la página 1 en vez de los de la 2

  9. #9
    Me va gustando esto... Habitante Avatar de SurKaiser
    Fecha de Ingreso
    15 oct, 11
    Mensajes
    256
    Poder de Reputación
    10
    Pues, vuelve a adaptar el codigo desde el principio porque el codigo de la web funciona bien, el problema consiste en que no lo adaptaste bien, y yo tampoco puedo resolver porque no se que bd tienes , que es lo que quieres lograr , en fin es un tema que no tocaremos, pero en el codigo paginador.php he visto diferentes modificaciones que pueden estar mal, por ejemplo al principio me fije que ponias un if(empty, en vez del if(isset, original que venia con el codigo, isset y empty son dos cosas distintas isset(existe) y empty(vacio) al poner if(isset le dice que si existe tal parametro ejecute lo que se encuentra dentro del script, y if(empty indica que si el parametro esta vacio proceda a lo dentro del if , tambien he visto unos headers que ingresas , en fin para resolver basta con verificar detalladamente que coincida el codigo de la web con tu codigo mas lo que quieres lograr. cuando termines y tengas nuevamente error, vuelve a ponerlo y ya lo reviso.

    Saludos!
    Mi web en construccion :
    surkaiser . com . es
    "El conocimiento es Poder"

  10. #10
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    Vale, va a ser mejor jeje

    Sí, me fijé en lo de empty que lo cambié, lo que pasa es que quería que si en la url no ponían ninguna cosa en &pag lo redirigierá a &pag=1

    En fin, luego pruebo y os cuento!

Temas Similares

  1. mostrar imagen segun datos encontrados en la base de datos dependiendo del valor
    Por Dramidom en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 26
    Último Mensaje: 31/08/2011, 18:48
  2. Crear enlaces a los visitantes para ordenar resultados de base de datos
    Por Doodleo en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 4
    Último Mensaje: 24/07/2011, 02:44
  3. problema para mostrar los resultados de mi base de datos
    Por alam en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 4
    Último Mensaje: 04/04/2011, 14:27
  4. Programa para administrar datos de base de datos sql
    Por victor5atodogas en el foro Foro General
    Respuestas: 3
    Último Mensaje: 26/11/2010, 16:13

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •