Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - dyhsoluciones

#1
Tengo estas tablas:

TABLA: contenido

id

TABLA: imagenes
id

TABLA DE RELACION: contenido_x_imagenes

idContenido
idImagen

Una variable (trabajo en php): $id.
La variable $id contiene el ID de un elemento de la tabla contenido. (seria como el id de una noticia).

EL PROBLEMA:
Recuperar TODAS las imagenes de la tabla "imagenes", pero, ordenandolas de tal forma, que las imagenes que esten relacionadas con "$id" en la tabla de relaciones contenido_x_imagenes salgan primeras.
Importante: hay imagenes, es decir, "ids" de imagenes que apareceran mas de una ves en la tabla "contenido_x_imagenes", ya que una imagen puede estar relacionada a diferentes contenidos. Solo se debe mostrar esa imagen una vez.
Y tambien hay imagenes que NO estan en la tabla de relacion "contenido_x_imagenes". Estas imagenes tambien tienen que mostrarse.

Lo que hize fue esto, que funciona muy bien, pero si la imagen esta repedita en la tabla "contenido_x_imagenes", me la muestra repetida en el listado, me faltaria filtrarlo:

SUPONGAMOS QUE $id = 2.


// cxi.idContenido lo uso para saber si esta en la tabla de relacion o no...
$cadenaMostrarIMG = mysql_query("SELECT i.*, cxi.idContenido FROM imagenes i LEFT JOIN contenido_x_imagenes cxi ON i.id = cxi.idImagen ORDER BY IF (cxi.idContenido = 2, 1, 2)");  

while($filaRecuperarIMG = mysql_fetch_array($cadenaMostrarIMG))
{

           //Si hay idContenido, quiere decir que la imagen que estoy mostrando esta relacionada con el contenido (en este caso el contenido tiene ID=2)
           if($filaRecuperarIMG['idContenido'] == 2)
           {
               $checkbox = 'checked="checked"';
           }
           else
           {
               $checkbox = '';
           }

           echo '<img src="../../upload/'.$filaRecuperarIMG['nombreArchivo'].'" align="left"/>';
           echo '<label><strong>ADJUNTAR</strong> <input type="checkbox" value="'.$filaRecuperarIMG['id'].'" name="imagenes[]" '.$checkbox.'  /></label>';
}  


Lo que no termino de entender, es esta porsion de codigo:


ORDER BY IF (cxi.idContenido = 2, 1, 2)


MIl gracias por esta gran comunidad.