Foros del Web » Programando para Internet » PHP »

Problema de una consulta y petición.

Estas en el tema de Problema de una consulta y petición. en el foro de PHP en Foros del Web. Estimados… necesito de vuestra ayuda urgente, para poder terminar un pagina web con una selección de galerías de fotos, que realmente necesito. Estaba desarrollando esta ...
  #1 (permalink)  
Antiguo 08/03/2016, 12:30
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Problema de una consulta y petición.

Estimados… necesito de vuestra ayuda urgente, para poder terminar un pagina web con una selección de galerías de fotos, que realmente necesito.

Estaba desarrollando esta página con un amigo, entendido en esta materia, pero por cosas de la vida el ya no está. Estoy trabajando con php y mysqli, y he desarrollado unas galerías de fotos con sus respectivas categorías… en la base de datos tengo una tabla llamada categoría, otra tabla llamada galerías y otra tabla llamada fotos.

Al momento de crear las nuevas galerías y querer mostrarlas en una página con su categoría respectiva, como; galería_moda.php – galería_retrato.php es lo que no sé hacer… hasta el momento tengo dos galerías creadas con diferente categoría, pero cuando las envió a la página galería_moda.php me aparecen todas las galerías, sin distinguir o separar las categorías.

En el código que dejo a continuación es como estoy llamando a las galerías, para que sean visualizadas por el usuario, pero con este código me aparecen todas, sin distinguir la categoría que realmente quiero mostrar ahí…

Sé que necesito hacer bien la consulta, no está completa para la finalidad que busco… anidarla tal vez, pero realmente nos e cómo hacerlo. La tabla de categoría tiene la columna IDCATEGORIA y NOMBRE_CATEGORIA

Código HTML:
<?php
include('panel/_setup.php');

?>

<!doctype html>
<html lang="es-ES">
<head>
<meta charset="utf-8">
<title>Galerías</title>
<link rel="stylesheet" href="css/stylenew.css"/>
</head>

<body>
<div id="principal">
<h1>Galeria Moda</h1>
  <?php 
	if( isset( $_GET['gal'] ) ){
		$id = $_GET['gal'];
		$consulta = "SELECT DESCRIPCION, TITULO, FKCATEGORIA FROM galerias WHERE IDGALERIA='$id'";
		$filas = mysqli_query($cnx, $consulta);
		$col = mysqli_fetch_assoc($filas);
		
		echo "<h2>$col[TITULO]</h2>";
        echo "<p>$col[DESCRIPCION]</p>";
        echo '<a href="galeria_moda.php">VOLVER ATRAS</a>';
      echo '<div id="ver_galeria">';		
		
        $consulta ="SELECT * FROM FOTOS WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY POSICION";
        $filas = mysqli_query($cnx, $consulta);
        while( $col = mysqli_fetch_assoc($filas)){
			echo '<div>';
			echo '<img src="fotos/'.$col['ARCHIVO'].'" alt="'.$col['NOMBRE'].'" />';
			
			echo '</div>';
		  }
          echo '</div>';		  
			
			
		}else{
$consulta =<<<SQL
	    SELECT
			IDGALERIA,
			TITULO,
			DESCRIPCION,
                        FKCATEGORIA,
			DATE_FORMAT( FECHA_ALTA, '%d/%m/%Y' ) FECHA 
			FROM
				galerias
			ORDER BY
				FECHA_ALTA DESC 

SQL;

			$filas = mysqli_query( $cnx, $consulta );

            echo '<div id="listado">';
		
		 while( $columna = mysqli_fetch_assoc($filas)){
			  $id = $columna['IDGALERIA'];
			  $subconsulta = "SELECT ARCHIVO FROM fotos WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY RAND() LIMIT 1";
			  $filas2 = mysqli_query($cnx, $subconsulta);
			  $datos = mysqli_fetch_assoc($filas2);
			  
			  $nombre_archivo = $datos['ARCHIVO'];
			  
			  
			  echo '<div>';  
			  echo "<h2>$columna[TITULO]</h2>";
			  echo "<div>$columna[FECHA]</div>";
			  if( $nombre_archivo != null ){
				  echo "<img src='fotos/$nombre_archivo' alt='Preview de la galeria' />";
			  }
			  echo "<p>". nl2br( $columna['DESCRIPCION'])."</p>";
			  echo "<a href='galeria_moda.php?gal=$columna[IDGALERIA]'>VER GALERIA</a>";
			  echo '</div>';
		  }
		  echo '</div>';
        		
	 }

             		  
?> 
</div>

</body>
</html> 

Alguno de ustedes me pudiera ayudar a modificar el código que realmente necesito? para que se visulazen las galerías solo de su respectiva categoría... si se necesita más información de otros codigos favor solicitarlos.. Gracias de ante mano a quien me pueda ayudar...

Última edición por marciano_79; 08/03/2016 a las 13:03
  #2 (permalink)  
Antiguo 08/03/2016, 13:23
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 7 meses
Puntos: 16
Respuesta: Problema de una consulta y petición.

Creo que el problema esta acá:
$consulta ="SELECT * FROM FOTOS WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY POSICION";

Pues estas volviendo a usar $id, cuando pienso que deberías usar el ID de la tabla "galerias"

Ahí me cuentas que pasó.

Salu2
__________________
Msn: [email protected]
  #3 (permalink)  
Antiguo 08/03/2016, 14:21
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema de una consulta y petición.

Hola estimado ikaroraul, gracias por responder... te comento que al hacer cambios como me señalas, las galerias muestar problemas. Al hacer lo que me propones, esta no me deja ver las fotos de la galería a la que corresponde… de hecho no muestra ninguna foto de esa forma.

Pero como comentaba en el anuncio, mi problema específico, no son las fotos de la galería sino las categoría de las galerías.... quiero que las galerías sean llamadas por categorías, en otras palabras, que se impriman en la pagina solo aquellas que sean llamadas por el FKCATEGORIA que se encuentra en la tabla galerías... se comprende? el codigo tal como esta imprime todas las galerías de todas las categorias, y eso es lo que necesito cambiar... Gracias de antemano por vuestra atención, saludos.!
  #4 (permalink)  
Antiguo 08/03/2016, 14:36
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 7 meses
Puntos: 16
Respuesta: Problema de una consulta y petición.

Entonces creo que aquí el problema:

$consulta = "SELECT DESCRIPCION, TITULO, FKCATEGORIA FROM galerias WHERE IDGALERIA='$id'";

El WHERE debería de ser con FKCATEGORIA y NO con IDGALERIA.

Necesitaria ver tus datos de tablas para tener una mejor idea.

Salu2
__________________
Msn: [email protected]
  #5 (permalink)  
Antiguo 08/03/2016, 14:55
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema de una consulta y petición.

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 Moda
2 Retrato


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
FKCATEGORIA varchar(100) Sí NULL

Volcado de datos para la tabla galerias

1 Clave Alta 2016-03-08 14:30:40 Ejemplo de sesión y edición para fotografìa de clave alta Moda
2 Primeros Planos 2016-03-08 14:31:42 Retrato a personas de tercera edad. Retrato


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
4 fhfhfgh 49472a0ccd898397722bf558243dae3c.jpg 1 visible 1
10 503fdf0b925e1ce2e5b1b6993434ee87.jpg 2 visible 1
  #6 (permalink)  
Antiguo 08/03/2016, 15:01
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 7 meses
Puntos: 16
Respuesta: Problema de una consulta y petición.

Creo que el problema esta en los datos de tu tabla GALERIAS, pues estas guardando el VALOR LITERAL y no así el ID.
__________________
Msn: [email protected]
  #7 (permalink)  
Antiguo 08/03/2016, 15:19
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema de una consulta y petición.

mmm ok el valor literal te refieres a que solo he guardado el nombre de la categoria en la tabla galerias cierto...? ANTE TODO GRACIA POR TU AYUDA..

te dejare mi formulario para que veas lo que hice, de como guarde ese valor... porque si ahora debo guardar el IDCATEGORIA como agrego eso al formulario?

nueva_galeria.php

Código HTML:
<?php  
include('_setup.php');

$consulta2=<<<SQL
SELECT IDCATEGORIA, 
       NOMBRE_CATEGORIA
FROM 
       categoria

SQL;

$filas2 = mysqli_query( $cnx , $consulta2);
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
<style> 
label {display:block;}
textarea {display:block;}
</style>

</head>

<body>
	<form method="post" action="guardar_galeria.php">
	<label>Categoría</label>
	<select name="nombre_categoria">
	<?php   
		while ( $columna = mysqli_fetch_array($filas2) ) {
			
			?>
			<option value=" <?php echo $columna['NOMBRE_CATEGORIA'] ?> " >
			<?php echo $columna['NOMBRE_CATEGORIA']; ?>
			</option>
			
			<?php
		 }   
		?>    
	</select>
	<label>Título</label>
	<input type="text" name="titulo"/>
	<label>Descripción</label>
	<textarea name="descripcion" rows="5" cols="90"></textarea>
	<input type="submit"/>
	</form>
</body>
</html> 


guardar_galeria.php


Código HTML:
<?php

include('_setup.php');


$nombre_categoria = $_POST['nombre_categoria'];
$titulo = $_POST['titulo'];
$descripcion = $_POST['descripcion'];

$consulta=<<<SQL
INSERT INTO
       galerias
SET

   TITULO='$titulo',
   FKCATEGORIA='$nombre_categoria',
   DESCRIPCION='$descripcion',
   FECHA_ALTA = NOW()

SQL;

mysqli_query($cnx, $consulta);

header("Location: index.php");

?> 
Nuevamente gracias por tu ayuda!!
  #8 (permalink)  
Antiguo 08/03/2016, 15:47
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 7 meses
Puntos: 16
Respuesta: Problema de una consulta y petición.

En esta parte:

Código PHP:
<option value=" <?php echo $columna['NOMBRE_CATEGORIA'?> " >
            <?php echo $columna['NOMBRE_CATEGORIA']; ?>
            </option>
Coloca:

Código PHP:
<option value=" <?php echo $columna['IDCATEGORIA'?> " >
            <?php echo $columna['NOMBRE_CATEGORIA']; ?>
            </option>
__________________
Msn: [email protected]
  #9 (permalink)  
Antiguo 08/03/2016, 16:09
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema de una consulta y petición.

ammm comprendo.. asi lo tenia antes... como puedo enviarte una foto de mi panel de control? quiero que veas algo..

Última edición por marciano_79; 08/03/2016 a las 16:38
  #10 (permalink)  
Antiguo 08/03/2016, 16:59
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 7 meses
Puntos: 16
Respuesta: Problema de una consulta y petición.

Ahí tienes mi correo y Skype, si me queda tiempo te puedo colaborarte.
__________________
Msn: [email protected]
  #11 (permalink)  
Antiguo 08/03/2016, 17:41
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema de una consulta y petición.

Muchas Gracias, te envie el correo.! [email protected]

Etiquetas: fecha, html, mysql, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:07.