Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2012, 08:19
educacanis
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 14 años, 1 mes
Puntos: 12
entender como se muestran los resultados con el bucle while

buenas, he conseguido resolver un problema que tenía al mostrar unos resultados que se lo explicaré posteriormente. Lo he resuelto sola, pero sin saber muy bien cómo y me gustaría que me explicasen el porqué.

Yo tenía el siguiente código para hacer una consulta y mostrar unos comentarios:
Código PHP:
$query_comentario "SELECT * FROM comentarios_noticias WHERE id_noticia='$recordID' ORDER BY 'ID_comentario' ASC";
$comentario mysql_query($query_comentario$conexion) or die (mysql_error());
$row_comentario mysql_fetch_assoc($comentario)?> 
ahora bien, si para mostrar los comentarios ponía:
Código PHP:
<? while($row_comentario mysql_fetch_assoc($comentario)){
[
código para crear un div con los resultados]
?>
me mostraba sólo a partir del segundo resultado, si sólo había un comentario nunca lo mostraba y si había dos sólo mostraba 1, etc.


el segundo caso intenté cambiarlo por el bucle do/while

Código PHP:
do{
[
código para crear div con los resultados]
}while(
$row_comentario mysql_fetch_assoc($comentario)) ?> 
en este caso siempre se mostraban correctamente todos los comentarios insertados, pero en las páginas que no había comentarios, me creaba el div con los contenidos genéricos, aunque luego estuviese vacío.

por último conseguí resolverlo poniendo el primer código así:
Código PHP:
$query_comentario "SELECT * FROM comentarios_noticias WHERE id_noticia='$recordID' ORDER BY 'ID_comentario' ASC";
$comentario mysql_query($query_comentario$conexion) or die (mysql_error()); 
es exactamente igual, pero quité esta fila


Código PHP:
$row_comentario mysql_fetch_assoc($comentario)?> 
entiendo más o menos la sintaxis del do/while y el while, lo que no entiendo es porque no mostraban el primer resultadoo creaban más resultados de los que había... obviamente es por la sentencia de $row_comentario = mysql_fetch_assoc($comentario), pero no entiendo porqué y me gustaría que me lo explicaran

gracias