Web personal de Modnuel

Módulo de comentarios con php y Mysql con función recursiva

Publicado: 03-12-2013

Vamos a ver cómo incluir en una web un módulo de gestión de comentarios haciendo uso de php con una función recursiva y MySQL. La idea es que se muestren los comentarios uno debajo de otro por orden cronológico descendente, dando la posibilidad de responder individualmente a cada comentarios o añadir un nuevo comentario independiente.

Vemos la función recursiva, haced clic en el título para leer el artículo completo:



//la función recursiva es la siguiente:
function comentarios_respondidos($idcomentario){//el único argumento es el idcomentario al que responde
	$resultado_select_comentario_respondido=$conexion->query("SELECT * FROM tabla_comentarios WHERE responde_a=".$idcomentario." AND publicado");	
    
    //como es una respuesta, le ponemos una sangría de un 2%. Así facilitamos la lectura:
	echo '
'; //hacemos lo mismo de antes, pero esta vez con el comentario que responde: while ($fila_select_comentario_respondido=$resultado_select_comentario_respondido->fetch_assoc()): echo ''.$fila_select_comentario_respondido["nombre"].' - responder
'; //fecha al muestro con un gris: echo ''; $phpdate = strtotime($fila_select_comentario_respondido['fecha']); echo $mysqldate = date( 'd-m-Y \a \l\a\s H:i:s', $phpdate ); echo ''; //texto del comentario echo $fila_select_comentario_respondido['comentario']; //si el comentario está respondido, entramos en una función recursiva que preguntará a cada comentario que responde si a su vez está respondido if ($fila_select_comentario_respondido['respondido']): comentarios_respondidos($fila_select_comentario_respondido['idcomentario']);//de nuevo se llama a la función recursiva endif; endwhile; echo '
'; }