Foros del Web » Programando para Internet » PHP »

paginacion

Estas en el tema de paginacion en el foro de PHP en Foros del Web. COMENTARIO(PADRE) ------------------------------------------------ COMENTARIO(HIJO) --------------------------------------------------- la idea es hacer la paginacion agrupando tanto al padre y al hijo para que asi si hay 20 replicas no ...
  #1 (permalink)  
Antiguo 15/03/2014, 15:52
 
Fecha de Ingreso: diciembre-2013
Mensajes: 108
Antigüedad: 10 años, 4 meses
Puntos: 1
Exclamación paginacion

COMENTARIO(PADRE)
------------------------------------------------
COMENTARIO(HIJO)
---------------------------------------------------

la idea es hacer la paginacion agrupando tanto al padre y al hijo para que asi si hay 20 replicas no lo cuente como un registro , intente hacerlo desde la consulta poniendo limit $variable $variable me sale normal pero no como quiero porque tambien me cuenta los registros (HIJO) ocea si pongo un limite de 10 entonces si hay 10 comentarios pero en varios de esos hay replicas las replicas se pierden por eso la idea es paginarlo desde el mismo foreach, muchas gracias espero me ayudes.


Código PHP:
<?php 
function showComment($arr

       
date_default_timezone_set("America/Lima"); 

$hace = new tiempoTrasncurrido($arr['post_date'],'s'); 
if (isset(
$_SESSION['signed_in'])) 



$comments_resultadou mysql_query("SELECT  * 
                    FROM 
                        users 
                    WHERE user_id = "
.$_SESSION['user_id'].""); 
                     

while(
$rowu=mysql_fetch_assoc($comments_resultadou)){ 
     
    
$user_id $rowu['user_id']; 
    
$user_name $rowu['user_name']; 
    
$user_foto $rowu['user_foto']; 







    
$sql "SELECT 
            topic_id, 
            topic_subject, 
            topic_cat, 
            topic_by, 
            media, 
            total_estrellas, 
            votos 
        FROM 
            topics 
        WHERE 
            topics.topic_id = " 
mysql_real_escape_string($_GET['id']); 
             
$result mysql_query($sql); 
while(
$rowtop mysql_fetch_assoc($result)) 
        { 
         
            
$topic_cat $rowtop['topic_cat']; 
            
$topic_id $rowtop['topic_id']; 
            
$topic_by $rowtop['topic_by']; 
         
        
$num=mysql_query("SELECT * FROM posts WHERE post_topic = '".$topic_id."' ")or die(mysql_error());  
        
$numeromsj=mysql_num_rows($num);  
        
$totmsj $numeromsj 1
             
                echo  
'<div class="waveComment com-'.$arr['post_id'].'">'
                if(
$arr['post_by'] != $topic_by  || $arr['cat_post'] == '0'){ 
                echo  
'<div class="comment">'
                }else{ 
                    echo 
'<div class="commentespecial">'
                } 
                
?>  
                <?php 
                
if($arr['cat_post'] !=){ 
                echo 
'<div class="commentAvatar"> 
                <img src="imagen/user/'
.$arr['user_foto'].'" class="user_comment" alt="'.$arr['usr'].'" /> 
                </div> 
                 
                <div class="commentText"> 
                <span class="name">@<a href="perfil.php?id='
.$arr['user_id'].'">'.$arr['usr'].'</a>&nbsp;&nbsp;</span><span class="time">Hace '.$hace.'</span>'
                if (isset(
$_SESSION['signed_in'])) 

                echo 
'<span class="menuboton"><div class="replyLink"><a class="classname2" ><img src="imagen/icono/denunciar.png" /></a></div><div class="replyLink"><a class="classname"><img src="imagen/icono/eliminar.png" /></a></div><div class="replyLink"><a class="classname"><img src="imagen/icono/bloquear.png" /></a></div><div class="replyLink">'
                 
                if (
$arr['parent']==0){ 
                echo 
'<a href="javascript:void(0);" class="classname" onClick="addComment(this,\''.$arr['post_id'].'\',\''.$user_id.'\',\''.$user_name.'\',\''.$user_foto.'\',\''.$topic_id.'\',\''.$topic_cat.'\');area(\'ta\');return false;"><img src="imagen/icono/responder.png" /></a>'
                }else{ 
                echo 
'<a href="javascript:void(0);" class="classname" onClick="addCommentar(this,\''.$arr['parent'].'\',\''.$user_id.'\',\''.$user_name.'\',\''.$user_foto.'\',\''.$topic_id.'\',\''.$topic_cat.'\');usuario(\''.$arr['user_name'].'\',\'ta\');return false;"><img src="imagen/icono/responder.png" /></a>';     
                } 
                 
                echo 
'</div><div class="replyLink"><a class="classname"><img src="imagen/icono/manitoabajo.png" /></a></div><div class="replyLink"><a class="classname3"><img src="imagen/icono/manitoarriba.png" /></a></div></span>'

                echo 
'<br><br><span id="contenido" >'
                 
                echo 
bbcode($arr['post_content']); 
                            echo 
'</span></div>'
                
?> 
                 
                <?php  
                
}else{ 
            
$a_men=mysql_query("SELECT * FROM posts WHERE post_topic = '".$topic_id."' AND parent = 0 ")or die(mysql_error());  
        
$numero_men=mysql_num_rows($a_men);  
         
                    if(
$numero_men <= 1){ 
                    echo 
'<div class="totalmsj" ><div id="capa">No hay Comentarios.</div></div>'
                    }else{ 
                     
                    
$totalmsj $numero_men-1

                            echo 
'<div class="totalmsj" ><div id="capa"><strong class="totalmsj">'.$totalmsj.' comentarios</strong></div></div>'
                        } 
                } 
                
?> 
                 
                <?php  
                
echo '<div class="clear"></div></div>'
                 
                 
    } 
     
     
    
// Output the comment, and its replies, if any 
     
    
if(isset($arr['replies'])) 
    { 
        foreach(
$arr['replies'] as $r
            
showComment($r); 
    } 
     
    echo 
'</div>'




$comments_result mysql_query("SELECT  posts.post_id, 
                posts.post_content, 
                posts.post_date, 
                users.user_id, 
                users.user_name, 
                users.foto_level, 
                users.user_ciudad, 
                users.user_foto, 
                users.foto_firma, 
                users.user_date, 
                users.user_level, 
                posts.cat_post, 
                posts.post_by, 
                posts.parent, 
                posts.usr 
                 
                 
                 
                    FROM 
                        posts 
                    LEFT JOIN 
                        users 
                    ON 
                        posts.post_by = users.user_id 
                    LEFT JOIN 
                        categories 
                    ON 
                        posts.cat_post = categories.cat_id                         
                    WHERE 
                        posts.post_topic = " 
mysql_real_escape_string($_GET['id'])."  ORDER BY post_id"); 
// Selecting all the comments ordered by id in ascending order 


$comments=array(); 

$js_history=''

while(
$row=mysql_fetch_assoc($comments_result)) 

    if(
$row['parent']==0){ 
        
// If the comment is not a reply to a previous comment, put it into $comments directly 
        
$comments[$row['post_id']] = $row
    } 
    else 
    { 
        if(!isset(
$comments[$row['parent']])) continue; 
         
        
$comments[$row['parent']]['replies'][] = $row
         

        
// If it is a reply, put it in the 'replies' property of its parent 
    



foreach(
$comments as $a
    { 
 
showComment($a); 

    }
para hacer la paginacion encontre esto que funciona perfectamente desde un array pero en esta funcion con array hablo de showComment($a) no sale no entiendo porque por fa ayuda :


Código PHP:
function paginar($v$l$p) { 

// DEFINIMOS LA CANTIDAD DE PÁGINAS 
$paginas ceil(count($v) / $l); 

// CONDICION DE INICIO 
$inicio = ($p-1)*$l
       
// CONDICION DE FINAL 
$final $p*$l


// MOSTRAMOS LOS ITEMS RESPECTIVOS 
      
echo '<div id="resultados">'
      for (
$i=$inicio$i<$final$i++) { 
         if (isset(
$v[$i])) 
            echo 
"<div id=\"item\">$i.- $v[$i]</div>"
         else  
            break; 
      } 
      echo 
'</div>'
       
       
      
// LISTAMOS LAS PÁGINAS 
      
echo '<div id="paginas">'
      if (
$p>1
         echo 
"<a href=\"topic.php?id=62&screen=" . ($p-1) . "\">Anterior</a>&nbsp;-&nbsp;"
       
      for (
$i=1$i<=$paginas$i++) { 
         if (
$i == $p
            echo 
"<strong>".$i."</strong>&nbsp;"
         else  
            echo 
"<a href=\"topic.php?id=62&screen=$i\">$i</a>&nbsp;"
      } 
       
      if (
$p<$paginas
         echo 
"&nbsp;-&nbsp;<a href=\"topic.php?id=62&screen=" . ($p+1) . "\">Siguiente&nbsp;-&nbsp;</a>"
      echo 
'</div>'
return; 
   } 
supuestamente saldria la paginacion :

Código PHP:
if (isset($_GET['screen'])){ 
      
$p $_GET['screen']; 
  } else { 
      
$p=1
      } 
   
paginar(showComment($a), 2$p); 
Sin embargo no sale porque showComment es una funcion si solo le pongo $a entonces sale pero no la informacion que quiero , poniendo showComment($a) sale la informacion que quiero pero no da la paginacion. ayudaa ¡¡

Etiquetas: mysql, paginacion, registro, select, sql, variable
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 22:28.