Tengo un sistema de comentarios, y quiero que cuando alguien postee salga la id como en mv, mi problema reside en que he conseguido que salga pero sale el comentario en general, es decir si en la primera noticia la id del comentario es #1 y en una segunda noticia ponen un primer comentario su id es #2. Alguna sugerencia ? las noticias las tengo clasificadas en la bd con ids pero no sé como hacer para que coja sólo los comentarios de la id 1 etc. Gracias.
mysql_query("SELECT * FROM comentarios WHERE nid = '{$_GET['id']}' ORDER BY id DESC");
nid seria un campo donde almacenar la id de la noticia, para al insertar el comentario decirle a que noticia se refiere ese comentario, $_GET['id'] es para seleccionar los comentarios de la noticia a la que se refiere la id, la URL podria ser comentarios.php?nid=X
Si no has entendido algo o tienes alguna duda mas, pregunta
Yo ahí también me lio, que deberia poner para que mostrase la id de los comentarios ? he probado y me sale la id, pero de las noticias y no sé como hacer que la primera función que es conseguir el nº de comentario eliga sólo los de la id de la noticia
jue que tarde es ya
LupiN- mira este post , habla sobre enlazar las noticias con los comentarios y tal
http://www.media-vida.net/vertema.php?fid=9&tid=1828843311
Lo que no entiendo muy bien es lo que dices Huevo276.
Estás hablando de la enumeracion que hay en los comentarios de una determinada noticia no ?
es decir :
noticia_id = 20
#1 ola
#2 lal..
..
#222
es eso ?
pues con un while a tuti plen
$comentario_numeracion = 0;
while( mysql_query("SELECT * FROM comentarios WHERE nid = '{$_GET['id']}' ORDER BY id DESC") )
$comentario_numeracion ++ ; // ó $comentario_numeracion = $comentario_numeracion +1 ;
....... ...
finalmente muestras el valor de dicha variable
aunque mv no lo hace de esta manera, como puedes notar cuando algun admin borra un comentario o post.
que utiliza ?
pa mi que un nuevo campo en la db de comentarios ( numero_de_comentario) , el cual se vá actualizando conforme la gente postea
whose me gusta tu avatar :=)
El problema que tiene el chaval es que usa el identificador unico del comentario, y son cosas distintas. Por eso en la segunda noticia no empieza desde 1.
Una cosa es el identificador unico del comentario y otra es la posicion en la que ha sido publicado. Esa posicion hay que calcularla a mano y meterla a mano en la BD, y ya luego muestras eso.
Yo creo lo hago mas facil aunque mucho mas cutre
$dbcomentario = mysql_db_query("...","SELECT * FROM comentarios where idnoticia='$noticiaquesolicitas'");
$n=1;
while ($row=mysql_fetch_array($dbcomentario))
{
echo '< b >$n' .$row["comentario"]. '< /b >';
$n=$n+1;
}
Tal vez sea algo cutre pero yo siempre lo he echo asinn como ves siempre que entres a ver comentarios el primer comentario valdra 1 y el resto se iran incrementando solitos. Se me olvidaba, en la select tendras que ordenar por idnoticia para no ponerle el #1 al ultimo comentario.
Debes de tener un campo de la tabla comentarios asi como de la de noticias en comun de tal forma que las dos tengan una misma columna, en este caso idnoticia Nose si me he explicado bien o te he liado mas pero bueno sino entienes, lo que decia whose, pregunta
edit: Ahora que leo un poko mas el chulla creo que lo hace similar
El problema de ese sistema, es que si se borra un post, no hay constancia en los siguientes de que se ha borrado. Pero para gustos, los colores.
es lo que te comentaba en mi post, tienes que ordenar el resultado a traves de un desc
ejem:
select * from comentarios where idnoticia=$noticia ORDER BY idcomentario DESC
DESC = Descendente, se ordenan de nuevos(arriba) a mas antiguos(abajo)
ASC = Ascendente, se ordenan de mas antiguos(arriba) a nuevos(abajo)
Saludos!
Eso es lo que he hecho pero nada me sigue saliendo el más nuevo con id #1 y el más antiguo con id mayor.