Código
1 "SELECT DISTINCT galerias.IDGALERIA, galerias.FKCATEGORIA_ID, galerias.DESCRIPCION, galerias.NOMBRECATEGORIA, galerias.TITULO, DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA_ALTA, categoria.IDCATEGORIA, categoria.NOMBRE_CATEGORIA FROM galerias INNER JOIN categoria ON galerias.NOMBRECATEGORIA = categoria.NOMBRE_CATEGORIA WHERE galerias.NOMBRECATEGORIA='$id'"; ---------------------------------------------------------------------------------- 2 "SELECT DISTINCT galerias.IDGALERIA, galerias.FKCATEGORIA_ID, galerias.DESCRIPCION, galerias.NOMBRECATEGORIA, galerias.TITULO, DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA_ALTA, categoria.IDCATEGORIA, categoria.NOMBRE_CATEGORIA 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
<?php include('panel/_setup.php'); $consulta =<<<SQL SELECT DISTINCT IDCATEGORIA, NOMBRE_CATEGORIA FROM categoria INNER JOIN galerias ON categoria.IDCATEGORIA=galerias.FKCATEGORIA_ID ORDER BY IDCATEGORIA ASC SQL; $filas = mysqli_query($cnx, $consulta); ?> <title>Galerías</title> <link rel="stylesheet" href="css/stylenew.css"/> </head> <body> <div id="principal"> <h1>Selección de Categorias</h1> <?php while( $id = mysqli_fetch_assoc($filas)){ echo '<div>'; echo "<a href='galeria-fotografica.php?cat=$id[NOMBRE_CATEGORIA]'>$id[NOMBRE_CATEGORIA]</a>"; echo '</div>'; } ?> </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
<?php include('panel/_setup.php'); ?> <title>Galerías</title> <link rel="stylesheet" href="css/stylenew.css"/> </head> <body> <div id="principal"> <?php $id = $_GET['gal']; $consulta = "SELECT DESCRIPCION, TITULO FROM galerias WHERE IDGALERIA='$id'"; echo "<h2>$col[TITULO]</h2>"; echo "<p>$col[DESCRIPCION]</p>"; echo '<a href="javascript:history.back(-1);" title="Ir la página anterior">VOLVER ATRAS</a>'; echo '<div id="ver_galeria">'; $consulta ="SELECT * FROM FOTOS WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY POSICION"; echo '<div>'; echo '<img src="fotos/'.$col['ARCHIVO'].'" alt="'.$col['NOMBRE'].'" />'; echo '</div>'; } echo '</div>'; }else{ $id = $_GET['cat']; $consulta ="SELECT DISTINCT galerias.IDGALERIA, galerias.FKCATEGORIA_ID, galerias.DESCRIPCION, galerias.NOMBRECATEGORIA, galerias.TITULO, DATE_FORMAT( galerias.FECHA_ALTA, '%d/%m/%Y' ) AS FECHA_ALTA, categoria.IDCATEGORIA, categoria.NOMBRE_CATEGORIA FROM galerias INNER JOIN categoria ON galerias.NOMBRECATEGORIA='$id' AND categoria.NOMBRE_CATEGORIA = '$id'"; echo "<h1>Galerías $columna[NOMBRECATEGORIA]</h1>"; } echo '<div id="listado">'; $id = $columna['IDGALERIA']; $subconsulta = "SELECT ARCHIVO FROM fotos WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY RAND() LIMIT 1"; $nombre_archivo = $datos['ARCHIVO']; echo '<div>'; echo "<h2>$columna[TITULO]</h2>"; echo "<div>$columna[FECHA_ALTA]</div>"; if( $nombre_archivo != null ){ echo "<img src='fotos/$nombre_archivo' alt='Preview de la galeria' />"; } echo "<a href='galeria-fotografica.php?gal=$columna[IDGALERIA]'>VER GALERIA</a>"; echo '</div>'; } echo '</div>'; } ?> </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.!