elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Problema con una consulta no funciona Distinct
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Problema con una consulta no funciona Distinct  (Leído 6,346 veces)
Marciano_79

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Problema con una consulta no funciona Distinct
« Respuesta #10 en: 5 Abril 2016, 00:33 am »

 :o Ohh gracias se pasaron voy a probar de inmediato toda estas respuestas que me han entregado... mil gracias, les comento pronto los resultados.!!


En línea

Marciano_79

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Problema con una consulta no funciona Distinct
« Respuesta #11 en: 5 Abril 2016, 02:12 am »

Hola muchas gracias por responder e intentar ayudarme…. He probado hacer los ajustes que me recomiendan, pero el resultado lamentablemente sigue igual,  incluso en algunos casos aplicando los cambios, el resultado es que se desaparece algunas galerías de fotos y se mezclan todos los resultados en las diferentes categorías de forma idéntica… con estas consultas

Código
  1. 1
  2.  
  3. "SELECT DISTINCT
  4.  galerias.IDGALERIA,
  5.  galerias.FKCATEGORIA_ID,
  6.  galerias.DESCRIPCION,
  7.  galerias.NOMBRECATEGORIA,
  8.  galerias.TITULO,
  9.  DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA_ALTA,
  10.  categoria.IDCATEGORIA,
  11.  categoria.NOMBRE_CATEGORIA  
  12.  
  13.  
  14. FROM galerias INNER JOIN categoria ON galerias.NOMBRECATEGORIA = categoria.NOMBRE_CATEGORIA
  15. WHERE galerias.NOMBRECATEGORIA='$id'";
  16.  
  17. ----------------------------------------------------------------------------------
  18. 2
  19.  
  20. "SELECT DISTINCT
  21.  galerias.IDGALERIA,
  22.  galerias.FKCATEGORIA_ID,
  23.  galerias.DESCRIPCION,
  24.  galerias.NOMBRECATEGORIA,
  25.  galerias.TITULO,
  26.  DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA_ALTA,
  27.  categoria.IDCATEGORIA,
  28.  categoria.NOMBRE_CATEGORIA  
  29.  
  30.  
  31. FROM galerias INNER JOIN categoria ON galerias.NOMBRECATEGORIA='$id' AND categoria.NOMBRE_CATEGORIA = '$id'";

y el resultado es este: Lo que está en rojo es el valor devuelto, y lo que está en azul es como debería estar (con este resultado les muestro que no tengo solo una categoría de galerías fotográficas)

PD: deje tal cual la fecha ya que con el cambio propuesto este dejaba de mostrarse



Resumen: tengo 3 galerías Retrato, 2 galerías Moda, y 1 galería Infantil. Total 6 galerías creadas… hasta el momento solo veo 5 galerías juntas sin orden y todas aparecen de igual forma por cada pagina de cada categoría

Ahora voy a dejar el código completo ya que entremedio hay otras consultas de otras tablas que tal vez puedan estar generando conflicto…

Este es para el menú donde llamo a las categorías, y se impriman en pantalla por su nombre:

index.php

Código
  1. <?php
  2. include('panel/_setup.php');
  3.  
  4. $consulta =<<<SQL
  5. SELECT DISTINCT
  6.     IDCATEGORIA,
  7.     NOMBRE_CATEGORIA
  8. FROM
  9.     categoria
  10.  
  11. INNER JOIN galerias ON categoria.IDCATEGORIA=galerias.FKCATEGORIA_ID
  12.  
  13. ORDER BY
  14. IDCATEGORIA ASC
  15.  
  16. SQL;
  17.  
  18. $filas = mysqli_query($cnx, $consulta);
  19.  
  20. ?>
  21.  
  22. <title>Galerías</title>
  23. <link rel="stylesheet" href="css/stylenew.css"/>
  24. </head>
  25.  
  26. <body>
  27. <div id="principal">
  28. <h1>Selección de Categorias</h1>
  29.       <?php
  30.  
  31.  
  32. while( $id = mysqli_fetch_assoc($filas)){
  33.     echo '<div>';
  34. echo "<a href='galeria-fotografica.php?cat=$id[NOMBRE_CATEGORIA]'>$id[NOMBRE_CATEGORIA]</a>";
  35. echo '</div>';
  36. }
  37. ?>
  38.  
  39. </div>

Resultado: galería-fotografica.php?cat=Retrato
               galería-fotografica.php?cat=Moda
               galería-fotografica.php?cat=Infantiles


y el otro código donde esta la consulta que me da problemas:

galeria-fotografica.php

Código
  1. <?php
  2. include('panel/_setup.php');
  3.  
  4. ?>
  5. <title>Galerías</title>
  6. <link rel="stylesheet" href="css/stylenew.css"/>
  7. </head>
  8.  
  9. <body>
  10. <div id="principal">
  11.  
  12. <?php
  13.    if( isset( $_GET['gal'] ) ){
  14. $id = $_GET['gal'];
  15. $consulta = "SELECT DESCRIPCION, TITULO FROM galerias WHERE IDGALERIA='$id'";
  16. $filas = mysqli_query($cnx, $consulta);
  17. $col = mysqli_fetch_assoc($filas);
  18.  
  19. echo "<h2>$col[TITULO]</h2>";
  20.        echo "<p>$col[DESCRIPCION]</p>";
  21.        echo '<a href="javascript:history.back(-1);" title="Ir la página anterior">VOLVER ATRAS</a>';
  22.        echo '<div id="ver_galeria">';
  23.  
  24.        $consulta ="SELECT * FROM FOTOS WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY POSICION";
  25.        $filas = mysqli_query($cnx, $consulta);
  26.        while( $col = mysqli_fetch_assoc($filas)){
  27. echo '<div>';
  28. echo '<img src="fotos/'.$col['ARCHIVO'].'" alt="'.$col['NOMBRE'].'" />';
  29.  
  30. echo '</div>';
  31.  }
  32.          echo '</div>';  
  33.  
  34.  
  35. }else{
  36.  
  37.  
  38. if( isset( $_GET['cat'] ) ){  
  39.    $id = $_GET['cat'];
  40.        $consulta ="SELECT DISTINCT
  41.                         galerias.IDGALERIA,
  42.         galerias.FKCATEGORIA_ID,
  43.         galerias.DESCRIPCION,
  44. galerias.NOMBRECATEGORIA,
  45. galerias.TITULO,
  46.         DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA_ALTA,
  47. categoria.IDCATEGORIA,
  48.                         categoria.NOMBRE_CATEGORIA  
  49.  
  50.  
  51. FROM galerias INNER JOIN categoria ON galerias.NOMBRECATEGORIA='$id' AND categoria.NOMBRE_CATEGORIA = '$id'";
  52.  
  53.  
  54. $filas = mysqli_query($cnx, $consulta);
  55. $columna = mysqli_fetch_assoc($filas);
  56. echo "<h1>Galerías $columna[NOMBRECATEGORIA]</h1>";
  57.  
  58. }
  59. echo '<div id="listado">';
  60. while( $columna = mysqli_fetch_assoc($filas)){
  61.  $id = $columna['IDGALERIA'];
  62.  $subconsulta = "SELECT ARCHIVO FROM fotos WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY RAND() LIMIT 1";
  63.  $filas2 = mysqli_query($cnx, $subconsulta);
  64.  $datos = mysqli_fetch_assoc($filas2);
  65.  
  66.  $nombre_archivo = $datos['ARCHIVO'];
  67.  
  68.  echo '<div>';  
  69.  echo "<h2>$columna[TITULO]</h2>";
  70.  echo "<div>$columna[FECHA_ALTA]</div>";
  71.  if( $nombre_archivo != null ){
  72.  echo "<img src='fotos/$nombre_archivo' alt='Preview de la galeria' />";
  73.  }
  74.  echo "<p>". nl2br( $columna['DESCRIPCION'])."</p>";
  75.  echo "<a href='galeria-fotografica.php?gal=$columna[IDGALERIA]'>VER GALERIA</a>";
  76.  echo '</div>';
  77.  }
  78.  echo '</div>';
  79.  
  80.  
  81.  
  82.    }
  83.  
  84.  
  85. ?>
  86.  
  87.  
  88. </div>

y la info de mis tablas:

Estructura de tabla para la tabla categoria


|Columna|Tipo|Nulo|Predeterminado

IDCATEGORIA|tinyint(25)|No
NOMBRE_CATEGORIA varchar(100)|Sí NULL

Volcado de datos para la tabla categoria


|1|Retrato
|2|Moda
|3|Infantiles



Estructura de tabla para la tabla galerias


|Columna|Tipo|Nulo|Predeterminado

IDGALERIA tinyint(25) No
TITULO varchar(100) Sí NULL
FECHA_ALTA datetime Sí NULL
DESCRIPCION text Sí NULL
NOMBRECATEGORIA varchar(100) Sí NULL
FKCATEGORIA_ID tinyint(20) Sí NULL

Volcado de datos para la tabla galerias

|1|Retrato-1| 2016-03-30 14:54:27 |bla,bla,bla |Retrato  |1
|2|Infantiles-1 |2016-03-30 14:55:22 |bla,bla,bla,bla,bla,bla |Infantiles  |3
|3|Retrato-2|2016-03-30 14:57:18|bjbbbk|Retrato |1
|4|Moda-1|2016-03-30 14:59:03|hvv,vgvhjvjhv,j|Moda |2
|5|Moda-2|2016-03-30 14:59:55|vhvhv|Moda |2
|6|Retrato-3|2016-03-30 15:00:35|cttdtftdtft|Retrato |1


dejo tambien la de tabla fotos (que no creo que sea de importancia, pero porsiacaso..



Estructura de tabla para la tabla fotos


|Columna|Tipo|Nulo|Predeterminado

|IDFOTO |int(25) |No|
|NOMBRE|varchar(100)|Sí|NULL
|ARCHIVO|varchar(100)|Sí|NULL
|POSICION|tinyint(3)|Sí|NULL
|ESTADO|enum('visible', 'invisible')|Sí|NULL
|FKGALERIA|tinyint(3)|Sí|NULL

Volcado de datos para la tabla fotos

|1|gdrgdrg |6ebbdb026d9c9.jpg|1|visible|1
|2|hajhajhjsh |fe4ba595921ffbbdd8.jpg|2|visible|1
|3|ajajskanka |d4cc19c8fbfdbe.jpg|1|visible|2
|4|nnjnjnjn |3d52dc1b7b.jpg|2|visible|2
|5|jojojojo |ab5788e01f4.jpg|1|visible|3
|6|knknknk |430ca7182b3.jpg|2|visible|3
|7|ububu |ad5d51bea35ff.jpg|1|visible|4
|8|addwbdb |b93635e8e092.jpg|2|visible|4
|9|sincinansn|6ba1b35d71d4d519748e9aa8b42c07f1.jpg|1|visible|5
|10|scknakcnkasnc|4dee3e3a41c53fd82de1b3227d1df372.jpg|2|visible|5
|11|sjcjsajcbjasbcjab|bf681c114a1f857ab8883143f4660246.jpg|1|visible|6
|12|scsjcnjasncj|629eef20bc75c576e931cc181296a3d7.jpg|2|visible|6


Espero estos datos puedan aportar mayor ayuda... espero con ansias sus respuestas.. muchas gracias de verdad.!


« Última modificación: 5 Abril 2016, 03:10 am por Marciano_79 » En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 4.970


I'm fourth.


Ver Perfil WWW
Re: Problema con una consulta no funciona Distinct
« Respuesta #12 en: 5 Abril 2016, 04:39 am »

Siento que la pregunta ha cambiado totalmente. Pero lo que estoy viendo es que tus campo IDGALERIA, TITULO, DESCRIPCION, etc son todos diferentes, lo cual explica tus hileras repetidas en la primera imagen que pusiste. La última imagen que has puesto es un simple JOIN.

Código
  1. SELECT categoria.IDCATEGORIA,
  2.       categoria.NOMBRECATEGORIA,
  3.       galerias.TITULO,
  4.       DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA,
  5.       galerias.DESCRIPCION,
  6.       fotos.ARCHIVO
  7. FROM galerias
  8. INNER JOIN categoria ON categoria.IDCATEGORIA = galerias.FKCATEGORIA_ID
  9. INNER JOIN fotos ON galerias.IDGALERIA = fotos.FKGALERIA

Puedes restringir los resultados al titulo de una categoria con WHERE:

Código
  1. ... WHERE categoria.NOMBRECATEGORIA = '$id'

Esto debe mostrarte 6 resultados de acuerdo a lo que has puesto:

Citar
|1|Retrato-1| 2016-03-30 14:54:27 |bla,bla,bla |Retrato  |1
|2|Infantiles-1 |2016-03-30 14:55:22 |bla,bla,bla,bla,bla,bla |Infantiles  |3
|3|Retrato-2|2016-03-30 14:57:18|bjbbbk|Retrato |1
|4|Moda-1|2016-03-30 14:59:03|hvv,vgvhjvjhv,j|Moda |2
|5|Moda-2|2016-03-30 14:59:55|vhvhv|Moda |2
|6|Retrato-3|2016-03-30 15:00:35|cttdtftdtft|Retrato |1

Sin embargo en tu tabla tienes 8 registros, aparecen Moda-3 e Infantiles-2. Para la información que tienes la consulta que he puesto debe funcionar. Pero las imagenes que pones no concuerda exactamente con tu información. Si quieres solucionar un problema real, vas a tener que plantear el problema real con información real. Nada de hipotéticas por favor, que ya van varias personas que intentan solucionar problemas ficticios en este tema y no es justo para ellos.

Otros detalles que puedo ver en tu script de PHP:

Realizas subconsultas separadas cuando pueden ser escritas bajo una consulta y estás saltandote el primer registro para obtener las cabeceras de tu apartado.

Código
  1. $filas = mysqli_query($cnx, $consulta);
  2. $columna = mysqli_fetch_assoc($filas);
  3. echo "<h1>Galerías $columna[NOMBRECATEGORIA]</h1>";
  4.  
  5. }
  6. echo '<div id="listado">';
  7. while( $columna = mysqli_fetch_assoc($filas)){
  8.  $id = $columna['IDGALERIA'];

Cuando llamas a mysqli_fetch_assoc, lees la primea fila y el puntero de $filas cambia a la siguiente fila. Por lo que cuando entras en el while, empiezas a imprimir desde la segunda fila. Básicamente pierdes la información de la primera fila.

Si vas a usar la consulta que te he puesto (que hace el inner join con la tabla de fotos tambien) te sugiero que agregues a los campos selecionados el campo de ESTADO. Verificas en cada hilera si el estado es visible o no (muy parecido a como lo tienes ahora).
« Última modificación: 5 Abril 2016, 04:42 am por MinusFour » En línea

Marciano_79

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Problema con una consulta no funciona Distinct
« Respuesta #13 en: 5 Abril 2016, 05:05 am »

Hola gracias por responder.. tienes toda la razón, con respecto a resultados ficticios, el tema es que había eliminado esos registros la noche anterior y al volcar los datos de las tablas hoy, me entrego lógicamente los nuevos, no me di cuenta.. lo siento mucho, para nada es mi intención hacer perder el tiempo a nadie.. de verdad mil disculpas.! ahora voy a intentar hacer los cambios que me planteas, y ademas como dije al comienzo del post "yo no soy programador" y haré mi mayor esfuerzo por comprender bien todo lo que me dices.. muchas gracias.!!  :)
En línea

Marciano_79

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Problema con una consulta no funciona Distinct
« Respuesta #14 en: 6 Abril 2016, 00:41 am »

Amigo, gracias por tu ayuda, pero no sé cómo agregar el campo ESTADO en especial, el verificar si el estado es visible o no, ya la cabeza se me parte… quiero hacerlo como me indicas tu, todo en una misma consulta, pero ya no sé cómo y la ignorancia y frustración ya se apodero de mi... en este script, implemente la consulta que me entregaste...

Código
  1. <?php
  2. if( isset( $_GET['cat'] ) ){  
  3.    $id = $_GET['cat'];
  4.        $consulta ="SELECT DISTINCT
  5.                       categoria.IDCATEGORIA,
  6.       galerias.IDGALERIA,
  7.                       galerias.NOMBRECATEGORIA,
  8.                       galerias.TITULO,
  9.                       DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA,  
  10.       galerias.DESCRIPCION,
  11.       fotos.ARCHIVO,
  12.       fotos.ESTADO
  13. FROM galerias
  14. INNER JOIN categoria ON categoria.IDCATEGORIA = galerias.FKCATEGORIA_ID
  15. INNER JOIN fotos ON galerias.IDGALERIA = fotos.FKGALERIA
  16. WHERE galerias.NOMBRECATEGORIA = '$id'";  
  17.  
  18.  
  19. $filas = mysqli_query($cnx, $consulta);
  20. $columna = mysqli_fetch_assoc($filas);
  21. echo "<h1>Galerías $columna[NOMBRECATEGORIA]</h1>";
  22.  
  23. }
  24. echo '<div id="listado">';
  25. while( $columna = mysqli_fetch_assoc($filas)){
  26.  $id = $columna['IDGALERIA'];
  27.  
  28.  $datos = mysqli_fetch_assoc($filas);
  29.  
  30.  $nombre_archivo = $datos['ARCHIVO'];
  31.  
  32.  echo '<div>';  
  33.  echo "<h2>$columna[TITULO]</h2>";
  34.  echo "<div>$columna[FECHA]</div>";
  35.  if( $nombre_archivo != null ){
  36.  echo "<img src='fotos/$nombre_archivo' alt='Preview de la galeria' />";
  37.  }
  38.  echo "<p>". nl2br( $columna['DESCRIPCION'])."</p>";
  39.  echo "<a href='galeria-fotografica.php?gal=$columna[IDGALERIA]'>VER GALERIA</a>";
  40.  echo '</div>';
  41.  }
  42.  echo '</div>';
  43.  
  44.  
  45.  
  46.    }
  47.  
  48.  
  49. ?>
  50.  



Gracias a tu consulta, los resultados son muy buenos, me muestra los 6 registros que tengo, en las categoría retrato tengo las 3 galerías, en categoría moda, tengo las 2 galerías  y en categoría infantil aparece la única que tengo.. en la imagen se puede apreciar mejor:



Porfavor puedes ayudarme a modificar bien el código para que se vea los registros faltantes, en este caso ARCHIVO. que pertenecía a la subconsulta
"SELECT ARCHIVO FROM fotos WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY RAND() LIMIT 1";

 Ya que realmente no sé cómo hacerlo, porfavor.!! Mil gracias de nuevo..

En línea

HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: Problema con una consulta no funciona Distinct
« Respuesta #15 en: 6 Abril 2016, 15:01 pm »

Creo que esta consulta se ajustaría a tu necesidad:

Código
  1. SELECT DISTINCT
  2.                       categoria.IDCATEGORIA,
  3.       galerias.IDGALERIA,
  4.                       galerias.NOMBRECATEGORIA,
  5.                       galerias.TITULO,
  6.                       DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA,  
  7.       galerias.DESCRIPCION,
  8.      IFNULL((SELECT fotos.ARCHIVO FROM fotos WHERE galerias.IDGALERIA = fotos.FKGALERIA AND ESTADO='visible' ORDER BY RAND()  LIMIT 1),'NO APARECE') AS ARCHIVO
  9. FROM
  10.                     galerias INNER JOIN categoria ON categoria.IDCATEGORIA = galerias.FKCATEGORIA_ID
  11. WHERE
  12.                     galerias.NOMBRECATEGORIA = '$id'
En línea

- Nice to see you again -
MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 4.970


I'm fourth.


Ver Perfil WWW
Re: Problema con una consulta no funciona Distinct
« Respuesta #16 en: 6 Abril 2016, 17:55 pm »

¿Cada galería tiene por lo menos una foto verdad? No me había dado percatado de las otras limitantes de tu subconsulta, pero en teoría deberías poder realizar un LEFT JOIN así:

Código
  1. SELECT categoria.IDCATEGORIA,
  2.       categoria.NOMBRECATEGORIA,
  3.       galerias.TITULO,
  4.       DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA,
  5.       galerias.DESCRIPCION,
  6.       fotos.ARCHIVO
  7. FROM galerias
  8. INNER JOIN categoria ON categoria.IDCATEGORIA = galerias.FKCATEGORIA_ID
  9. LEFT JOIN
  10.    (SELECT * FROM (
  11.       SELECT FKGALERIA,
  12.              ARCHIVO
  13.       FROM fotos
  14.       WHERE estado = 'visible'
  15.       ORDER BY RAND()
  16.    ) AS tmp
  17.    GROUP BY tmp.FKGALERIA) AS fotos
  18. ON galerias.IDGALERIA = fotos.FKGALERIA
  19. WHERE categoria.NOMBRECATEGORIA = '$id'

Los mismos detalles aplican a tu código. El LEFT JOIN considera que puede o no haber un valor que intersecta con la tabla de fotos. Todavía tienes el detalle que te mencione en tu código. No hace falta si quiera que recojas el valor directamente de la consulta porque sabes bien que el nombre de la categoría es igual a tu variable $_GET['cat'].

La consulta tiene algunos otros detalles como el agrupamiento de columnas no agregadas... En MySQL 5.7 esto probablemente no funcione. La consulta también está expuesta a inyecciones SQL.
En línea

Marciano_79

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Problema con una consulta no funciona Distinct
« Respuesta #17 en: 6 Abril 2016, 19:44 pm »

Muchas gracias HdM y MinusFour para mi es impagable vuestra ayuda... y si MinusFour cada galería tiene una imagen como tumb que la toma al azar de su propio álbum :) verificare las consultas ahora mismo.... aun así me surge la siguiente duda: "es necesario que al aplicar esta consulta anidada (si es que se dice así) la ejecución de este tipo de sentencias requiere la utilización de la función: mysqli_multi_query($conexion,sentencia_multiple) o no"?

Gracias nuevamente..
En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 4.970


I'm fourth.


Ver Perfil WWW
Re: Problema con una consulta no funciona Distinct
« Respuesta #18 en: 6 Abril 2016, 20:19 pm »

Hasta donde yo se, esa función es para lanzar multiples queries al servidor. E.g.:

Código
  1. SELECT * FROM A; -- Query 1
  2. SELECT * FROM B; -- Query 2
En línea

Marciano_79

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Problema con una consulta no funciona Distinct
« Respuesta #19 en: 6 Abril 2016, 22:20 pm »

Ok, amigos, probé las dos consulta que me dieron, pero se hacia un caos en todos los registros, solo aparecían una galería y sin imágenes ni nada, en otras con imágenes pero faltando galerías, y otras sin nada  de nada...

Ahora al dejar la propuesta de la penúltima consulta que me entregaste, es la que mejor funciona, de hecho ahora con unas modificaciones que hice se pueden ver todas las galerías, con sus respectivas categorías y sus fotos "tumb" lo único que faltaría es el RAND para que los tumb o fotos de las galerías cambien de forma aleatoria.. así deje el código:

Código
  1. if( isset( $_GET['cat'] ) ){  
  2.    $id = $_GET['cat'];
  3.        $consulta ="SELECT DISTINCT
  4.                       categoria.IDCATEGORIA,
  5.       galerias.IDGALERIA,
  6.                       galerias.NOMBRECATEGORIA,
  7.                       galerias.TITULO,
  8.                       DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA,  
  9.       galerias.DESCRIPCION,
  10.       fotos.ARCHIVO,
  11.       fotos.ESTADO
  12.       FROM galerias
  13. INNER JOIN categoria ON categoria.IDCATEGORIA = galerias.FKCATEGORIA_ID
  14. INNER JOIN fotos ON galerias.IDGALERIA = fotos.FKGALERIA
  15.  
  16. WHERE galerias.NOMBRECATEGORIA = '$id'";  
  17.  
  18.  
  19. $filas = mysqli_query($cnx, $consulta);
  20. $columna = mysqli_fetch_assoc($filas);
  21. echo "<h1>Galerías $columna[NOMBRECATEGORIA]</h1>";
  22.  
  23. }
  24. echo '<div id="listado">';
  25. $filas = mysqli_query($cnx, $consulta);
  26. while( $columna = mysqli_fetch_assoc($filas)){
  27.  
  28.  $id = $columna['IDGALERIA'];
  29.  
  30.  $datos = mysqli_fetch_assoc($filas);
  31.  
  32.  $nombre_archivo = $datos['ARCHIVO'];
  33.  
  34.  echo '<div>';  
  35.  echo "<h2>$columna[TITULO]</h2>";
  36.  echo "<div>$columna[FECHA]</div>";
  37.  if( $nombre_archivo != null ){
  38.  echo "<img src='fotos/$nombre_archivo' alt='Preview de la galeria' />";
  39.  }
  40.  echo "<p>". nl2br( $columna['DESCRIPCION'])."</p>";
  41.  echo "<a href='galeria-fotografica.php?gal=$columna[IDGALERIA]'>VER GALERIA</a>";
  42.  echo '</div>';
  43.  }
  44.  echo '</div>';
  45.  
  46.  
  47.  
  48.    }

Que opinan?
En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cómo hacer esta consulta en MySql: Select distinct...
Bases de Datos
orion180 2 6,840 Último mensaje 21 Septiembre 2011, 20:10 pm
por fran800m
SELECT DISTINCT, IN ()
Programación Visual Basic
TheGhost(Z) 8 1,997 Último mensaje 21 Noviembre 2006, 20:30 pm
por TheGhost(Z)
DISTINCT SQL
Programación Visual Basic
TheGhost(Z) 5 1,273 Último mensaje 16 Julio 2007, 02:52 am
por Sancho.Mazorka
Ayuda SQL DISTINCT « 1 2 3 »
Bases de Datos
TheGhost(Z) 23 14,993 Último mensaje 26 Octubre 2009, 21:34 pm
por ^Tifa^
Consulta Distinct a un solo campo « 1 2 »
Bases de Datos
matagalo 10 10,435 Último mensaje 11 Junio 2012, 22:33 pm
por Aberroncho
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines