Cita:
Iniciado por ocp001a Desconozco si $a en tu script es un arreglo o no, y tampoco sé que hace la función showComment, por lo que te sugiero indiques cómo obtienes los datos y qué quieres tener como salida, con el código que lleves.
Tienes razón, para comenzar es un sistema de comentarios, ocea se puede comentar y a la ves poner una replica ocea seria asi:
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'] !=0 ){
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> </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> - ";
for ($i=1; $i<=$paginas; $i++) {
if ($i == $p)
echo "<strong>".$i."</strong> ";
else
echo "<a href=\"topic.php?id=62&screen=$i\">$i</a> ";
}
if ($p<$paginas)
echo " - <a href=\"topic.php?id=62&screen=" . ($p+1) . "\">Siguiente - </a>";
echo '</div>';
return;
}
asi supuestamente saldria la paginacion :
Código PHP:
if (isset($_GET['screen'])){
$p = $_GET['screen'];
} else {
$p=1;
}
paginar(showComment($a), 2, $p);
pero no salee ahora si yo defino un array :
ejemplo :
Código PHP:
array(
clave => valor,
clave2 => valor2,
clave3 => valor3,
...
)
si sale la paginacion normal , alguna ayuda porfa¡ ¡¡¡¡ :SSSSSSSS me eh quedado estancado