Comunidad de diseño web y desarrollo en internet online

Organizar una consulta MySQL

Citar            
MensajeEscrito el 14 Ene 2014 08:05 pm
Hola a todos, desde ya agradezco la ayuda que me puedan brindar.

Mi problema es el siguiente, cuento con una tabla con cinco columnas

id_pregunta
id_producto
id_usuario
pregunta
respuesta

Quiero que se muestre por cada usuario las preguntas realizadas a cada producto organizadas desde la mas reciente a la mas antigua.
Hasta ahí funciona bárbaro lo que tengo, el tema es que quiero que a su vez cada grupo de pregunta realizadas a los productos se organice también desde el mas reciente al mas antiguo.

Les doy un ejemplo:

+------------------+
| Producto A | -> Producto por el cual se consulto Martes
+------------------+------------------+
| Pregunta A | Respuesta A |
| Pregunta B | Respuesta B |
| Pregunta C | Respuesta C |
+--------------------------------------+

+------------------+
| Producto B | -> Producto por el cual se consulto el Lunes
+------------------+------------------+
| Pregunta A | Respuesta A |
| Pregunta B | Respuesta B |
| Pregunta C | Respuesta C |
+--------------------------------------+

+------------------+
| Producto C | -> Producto por el cual se consulto el Miercoles
+------------------+------------------+
| Pregunta A | Respuesta A |
| Pregunta B | Respuesta B |
| Pregunta C | Respuesta C |
+--------------------------------------+

Yo quiero que el se muestre la consulta del miércoles primero (ya que fue la consulta mas reciente), martes segundo, lunes tercero.

No creí necesario agregar una columna de fecha ya que pensaba controlarlo con el id_pregunta si el id crece la fecha también entonces seria igual.

Espero haberme explicado yo intente con esto

Código PHP :

<?php
   $ctrl = '';
$controlador = mysql_query('SELECT id_pregunta, id_producto FROM preguntas WHERE id_usuario = '.$id_usuario.' GROUP BY id_producto ORDER BY id_pregunta DESC') or die (mysql_error());

while ($control = mysql_fetch_array($controlador, MYSQL_ASSOC)) {
   
   if($ctrl != $control['id_producto']){
   $ctrl = $control['id_producto'];
?>

<div class="realizada" style="background:#B3ACAC; margin:10px 0;" id="<?php echo 'pregunta_' . $ctrl?>">

<?php
$preguntas = mysql_query('SELECT * FROM preguntas WHERE id_usuario = '.$id_usuario.' AND id_producto= '.$ctrl.' ORDER BY id_pregunta DESC') or die (mysql_error());
while ($pregunta = mysql_fetch_array($preguntas, MYSQL_ASSOC)) {
?>

    <div class="pregunta">
        <span><img src="img/globo-preg.png" width="16" height="16" alt=""></span>
        <p><?php echo $pregunta['pregunta']; ?></p>
    </div>
    <div class="respuesta">
        <span><img src="img/globo-res.png" width="16" height="16" alt=""></span>
        <p><?php if ($pregunta['respuesta'] == ''){echo '<a style="color:#ccc">Aguardando respuesta... </a>'; }else{ echo $pregunta['respuesta'] ;} ?></p>
    </div>


<?php 
} 
?>

</div>

<?php
}
}
}
?>



Me muestra el grupo de preguntas realizado a un producto, siendo este el ultimo producto consultado, pero el resto se encuentra todo desorganizado.

Poniéndolo en términos prácticos:

me muestra la consulta realizada el miércoles primero, pero luego me muestra la consulta del lunes y en tercer lugar la del martes.

Espero haberme explicado

Por PX10

70 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Ene 2014 12:47 pm
Pues si quieres un orden cronológico (el que sea) debes tener un campo fecha/hora.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Feb 2014 04:09 am
no hace falta puedo ordenar por ID, cuanto mas grande mas reciente la consulta y viceversa... o no? funcionaria de la misma forma...

Por PX10

70 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Feb 2014 12:16 pm
¿Y cómo vas a saber qué registro le corresponde cada día?.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Feb 2014 03:00 pm
Lo de los días fue a modo de ejemplo no necesito que me indique los días solo organizarlas de esa manera

Primero se muestre el ultimo producto consultado con las preguntas organizadas de las mas nueva a la mas vieja.

y luego el resto de productos desde el mas nuevo al mas viejo consultado y sus preguntas organizadas de la mas nueva a la mas vieja.

Por PX10

70 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.