Foros del Web » Programando para Internet » PHP »

problema con el visor de imágenes

Estas en el tema de problema con el visor de imágenes en el foro de PHP en Foros del Web. hola gente, he hecho un visor de imágenes, pero no va.... index.php Código: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; ...
  #1 (permalink)  
Antiguo 03/02/2013, 13:23
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
problema con el visor de imágenes

hola gente, he hecho un visor de imágenes, pero no va....

index.php
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
    <html>  
        <head>  
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
            <!-- Incluimos la hoja de estilos, la libreria jquery y 
                    nuestra libreria de funciones -->
                    <link rel="stylesheet" href="css/estilos.css" />  
            <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>  
            <script type="text/javascript" src="js/funciones.js"></script>  
            <title>Galer&iacute;a de Im&aacute;genes</title>  
        </head>  
        <body>  
      
            <div id="galeria">  
                <h1>Mi galer&iacute;a de im&aacute;genes</h1> 
                
                <?php
function __autoload($class) {
require_once "../clases/" . $class . ".php";
}
                ?>
            <?php  
                    /* Conectamos a la BD para obtener la informacion de 
                    las imagenes que tenemos guardadas */  
            $conexion = new mysqli('localhost', 'historiador', 'pasado', 'historia');  
            /*$consulta = "SELECT id, titulo, descripcion, archivo 
                    FROM imagen";*/
            
            $consulta = "SELECT codacontecimiento, imagen FROM imagen";
      
            // Obtenemos el resultado de la consulta  
                    $resultado = $conexion->query($consulta);  
      
            // Desplegamos las imagenes con un enlace a su id  
                    while($filas = $resultado->fetch_array(MYSQLI_ASSOC)) {  
      
            ?>  
            <a href="visor.php?id=<?php echo $filas['id']; ?>"><img src="http://www.forosdelweb.com/imagen/t-<?php echo $filas['archivo']; ?>" alt="imagen" /></a>  
            <?php }  
            ?>  
      
            </div>  
      
        </body>  
    </html>
visor.php
Código:

<?php
	$id = $_GET['id'];
	$prev = $id-1;
	$sig = $id+1;
	
	$conexion = new mysqli('localhost', 'historiador', 'pasado', 'historia');
	$consulta = "SELECT codacontecimiento, imagen FROM imagen WHERE id = $id";
	
	$resultado = $conexion->query($consulta);
	
	$fila = $resultado->fetch_array(MYSQLI_ASSOC);
	
	$consulta = "SELECT min(codacontecimento) as minimo, max(codacontecimento) as maximo FROM imagen";
	$resultado = $conexion->query($consulta);
	
	$datos = $resultado->fetch_array(MYSQLI_ASSOC);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<title>Galer&iacute;a de Im&aacute;genes - <?php echo $fila['titulo'];?> </title>
		<link rel="stylesheet" href="css/estilos.css" />
		<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
		<script type="text/javascript" src="js/funciones.js"></script>
	</head>
	<body>
	<div id="contenedor">
		<?php 
			if($id != $datos['minimo']) {?>
			<a  href="visor.php?id=<?php echo $prev; ?>"><img src="img/back.png" /></a>
		<?php }
			else {
		?>
			<img src="img/block.png" alt="Primera imagen" />
		<?php }?>
		<img id="imgcompleta" src="img/<?php echo $fila['archivo']; ?>" alt="<?php echo $fila['descripcion'];?>" />
		<?php if($id != $datos['maximo']){?>
		<a  href="visor.php?id=<?php echo $sig; ?>"><img src="img/next.png" /></a>
		<?php }
			else {
		?>
			<img src="img/block.png"  alt="&Uacute;ltima imagen" />
		<?php }?>
		<div id="masinfo"><h4>Informaci&oacute;n de la imagen <a href="#"><img src="img/add.png" alt="M&aacute;s informaci&oacute;n" /></a></h4></div>
		<div id="info">
		<p>T&iacute;tulo: <?php echo $fila['titulo'];?></p>
		<p>Descripci&oacute;n: <?php echo $fila['descripcion'];?></p>
		
		</div>
	</div>
	<div id="galeria-small">
			<h3>Mis otras im&aacute;genes</h3>
		<?php 
			
			
			$cons = "SELECT id, titulo, descripcion, archivo FROM imagen";
			
			$res = $conexion->query($cons);
			
			while($filas = $res->fetch_array(MYSQLI_ASSOC)) {
				
			
				
		?>
			<a href="visor.php?id=<?php echo $filas['id']; ?>"><img src="img/t-<?php echo $filas['archivo']; ?>" alt="imagen" /></a>
		<?php }
			 
			 			 
		?>
			
			
			
		</div>
	</body>
</html>
el error que me da en visor.php es:

Fatal error: Call to a member function fetch_array() on a non-object in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\galeria\visor.php on line 12

Me estoy volviendo loco, y no se donde está el error. Gracias y Salu2.
  #2 (permalink)  
Antiguo 03/02/2013, 14:36
 
Fecha de Ingreso: septiembre-2005
Ubicación: Ourense
Mensajes: 25
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: problema con el visor de imágenes

Por lo que parece:

$conexion->query($consulta);

en su primera aparición no está devolviendo un objeto, comprueba que el valor
en $resultado no sea FALSE ya que en ese caso el problema está en que la
consulta falla o no retorna valores.
  #3 (permalink)  
Antiguo 03/02/2013, 14:59
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: problema con el visor de imágenes

pues he hecho un var_dump de la consulta y salta esto:

string(216) "SELECT codacontecimiento, imagen FROM imagen WHERE id =
Notice: Undefined index: id in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\galeria\index.php on line 25
"

falla en la línea 25 del index.php, pero no se como arreglarlo, estoy atascado!!!!
  #4 (permalink)  
Antiguo 03/02/2013, 15:25
 
Fecha de Ingreso: septiembre-2005
Ubicación: Ourense
Mensajes: 25
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: problema con el visor de imágenes

Prueba a colocar la siguiente linea:

$consulta = "SELECT codacontecimiento, imagen FROM imagen WHERE id = $id";

asi:

$consulta = "SELECT codacontecimiento, imagen FROM imagen WHERE id = ".$id;

me resulta dificil saber cual es la línea 25 o la XX :(
  #5 (permalink)  
Antiguo 03/02/2013, 18:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: problema con el visor de imágenes

El notice te dice todo, tu variable $id no existe y eso es porque en tu query no lo estas seleccionando, solo seleccionas dos columnas de tu tabla, te falta seleccionar el id también.

Saludos.
  #6 (permalink)  
Antiguo 04/02/2013, 11:08
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: problema con el visor de imágenes

buenas, ya he arreglado algo más del index.php, pero no me muestra las imágenes:

index.php
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<link rel="stylesheet" href="css/estilos.css" />
		<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
		<script type="text/javascript" src="js/funciones.js"></script>
		<title>Galer&iacute;a de Im&aacute;genes</title>
	</head>
	<body>
		
		<div id="galeria">
			<h1>Mi galer&iacute;a de im&aacute;genes</h1>
		<?php 
			$conexion = new mysqli('localhost', 'historiador', 'pasado', 'historia');
			/*$consulta = "SELECT id, titulo, descripcion, archivo FROM imagen";*/
			$consulta = "SELECT codacontecimiento, imagen FROM imagen";
			$resultado = $conexion->query($consulta);
			var_dump($resultado);
			while($filas = $resultado->fetch_array(MYSQLI_ASSOC)) {
				
			
				
		?>
			<a href="visor.php?id=<?php echo $filas['codacontecimiento']; ?>"><img src="img/t-<?php echo $filas['imagen']; ?>" alt="imagen" /></a>
		<?php 
		} 
		?>
			
			
			
		</div>

	</body>
</html>
en visor.php ya me llega el id según el var_dump:

string(57) "SELECT codacontecimiento, imagen FROM imagen WHERE id = 4"

pero creo que es culpa del index.php.... Es decir en index.php me tendría que mostrar las imágenes que tengo, es decir se ven los recuadros, pero no las imágenes...

Última edición por xtremecodis; 04/02/2013 a las 11:15
  #7 (permalink)  
Antiguo 04/02/2013, 11:29
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: problema con el visor de imágenes

Vale, acaba de avanzar un poco más, el caso es que ahora el problema lo tengo con el visor.php... estoy en ello a ver si lo arreglo....
  #8 (permalink)  
Antiguo 04/02/2013, 11:37
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: problema con el visor de imágenes

Bueno, sigo sin que funcione, este es el codigo del visor.php que acaba de arreglar:

Código:

<?php
	$id = $_GET['id'];
	var_dump($id);
	$prev = $id-1;
	$sig = $id+1;
	
	$conexion = new mysqli('localhost', 'historiador', 'pasado', 'historia');
	$consulta = "SELECT codacontecimiento, imagen FROM imagen WHERE codacontecimiento = $id";
	var_dump($consulta);
	$resultado = $conexion->query($consulta);
	
	$fila = $resultado->fetch_array(MYSQLI_ASSOC);
	
	$consulta = "SELECT min(codacontecimento) as minimo, max(codacontecimento) as maximo FROM imagen";
	$resultado = $conexion->query($consulta);
	
	$datos = $resultado->fetch_array(MYSQLI_ASSOC);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<title>Galer&iacute;a de Im&aacute;genes - <?php echo $fila['codacontecimiento'];?> </title>
		<link rel="stylesheet" href="css/estilos.css" />
		<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
		<script type="text/javascript" src="js/funciones.js"></script>
	</head>
	<body>
	<div id="contenedor">
		<?php 
			if($id != $datos['minimo']) {?>
			<a  href="visor.php?id=<?php echo $prev; ?>"><img src="img/back.png" /></a>
		<?php }
			else {
		?>
			<img src="img/block.png" alt="Primera imagen" />
		<?php }?>
		<img id="imgcompleta" src="img/<?php echo $fila['imagen']; ?>" alt="<?php echo $fila['imagen'];?>" />
		<?php if($id != $datos['maximo']){?>
		<a  href="visor.php?id=<?php echo $sig; ?>"><img src="img/next.png" /></a>
		<?php }
			else {
		?>
			<img src="img/block.png"  alt="&Uacute;ltima imagen" />
		<?php }?>
		<div id="masinfo"><h4>Informaci&oacute;n de la imagen <a href="#"><img src="img/add.png" alt="M&aacute;s informaci&oacute;n" /></a></h4></div>
		<div id="info">
		<p>T&iacute;tulo: <?php echo $fila['codacontecimiento'];?></p>
		<p>Descripci&oacute;n: <?php echo $fila['imagen'];?></p>
		
		</div>
	</div>
	<div id="galeria-small">
			<h3>Mis otras im&aacute;genes</h3>
		<?php 
			
			
			$cons = "SELECT codacontecimiento, imagen FROM imagen";
			
			$res = $conexion->query($cons);
			
			while($filas = $res->fetch_array(MYSQLI_ASSOC)) {
				
			
				
		?>
			<a href="visor.php?id=<?php echo $filas['codacontecimiento']; ?>"><img src="img/t-<?php echo $filas['imagen']; ?>" alt="imagen" /></a>
		<?php }
			 
			 			 
		?>
			
			
			
		</div>
	</body>
</html>
según var_dump de $consulta está bien:
string(1) "4" string(72) "SELECT codacontecimiento, imagen FROM imagen WHERE codacontecimiento = 4"
Pero ahora me salta en la línea 18....
Fatal error: Call to a member function fetch_array() on a non-object in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\galeria\visor.php on line 18

La línea 18 es:

$datos = $resultado->fetch_array(MYSQLI_ASSOC);

Salu2.

Última edición por xtremecodis; 04/02/2013 a las 11:56

Etiquetas: html, mysql, select, sql, tabla, variables, visor
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 18:12.