Foros del Web » Programando para Internet » PHP »

Problema con consulta.

Estas en el tema de Problema con consulta. en el foro de PHP en Foros del Web. Buenas, tengo un problema con una consulta que realizo en un while dentro de otro while, ya que a pesar que el select en teoria ...
  #1 (permalink)  
Antiguo 12/01/2012, 22:42
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Problema con consulta.

Buenas, tengo un problema con una consulta que realizo en un while dentro de otro while, ya que a pesar que el select en teoria se realiza correctamente cuando intento mostrar los resultados me marca error:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Archivos de programa\EasyPHP-5.3.6.1\www\galeriabulo.php on line 53

Muestro las tablas y el codigo mientras me voy explicando mejor:

Cuento con 2 tablas una llamada "albumes":



La cual en el campo "albums" contiene el nombre de estos.

Y la tabla "galeria":




La cual en el campo "album" lleva el nombre del album al que pertenece cada foto,
Y asi de esta forma poder ligarlos.


Y aca el codigo:

Código PHP:
<?php

$sql 
"select * from albumes order by id_albumes desc";
$resultado mysql_query($sql);

while(
$fila mysql_fetch_array($resultado)){
    
        echo 
$fila['albums'];
    
    
$sql1 'select * from galeria where album = '.$fila["albums"];
    
$result mysql_query($sql1);
    
        echo 
'<ul id="'.$fila['id_albumes'].'" class="jcarousel-skin-tango">';
    
        while(
$row mysql_fetch_array($result)){
    
            echo 
'<li><a href="'.$row['imagenes'].'" title="Imagen" rel="shadowbox['.$row['album'].']"><img src="'.$row['tumbnails'].'"/></a></li>';
        }
    
    echo 
"</ul>";
}

?>
El problema es con el segundo while,

while($row = mysql_fetch_array($result)){

y con esta consulta:

$sql1 = 'select * from galeria where album = '.$fila["albums"];

Que no se por que motivo dentro del segundo while parece no funcionar ya que si hago un echo de este select fuera de ese segundo while lo muestra tal cual lo necesito:

select * from galeria where album = Segundo Match

select * from galeria where album = Primer Match

Y por ejemplo para comprobar si igualmente la galeria funcionaba forzaba la consulta con lo que yo queria exactamente por ejemplo:

$sql1 = 'select * from galeria where album = "Primer match";

Y asi funcionaba perfecto, obviamente para ese caso, alli perdia el dinamismo, pero era con el fin de probar si todo funcionaba.

En si lo que no logro comprender es porque dentro del segundo while no se logra leer el valor de:

$fila["albums"]

Soy bastante novato, disculpas si no me supe explicar y cualquier consulta a ver si se logra solucionar esto desde ya se los agradesco. :D
  #2 (permalink)  
Antiguo 12/01/2012, 22:58
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con consulta.

Tienes un serio problema de comillas. Mira la diferencia:
Código SQL:
Ver original
  1. // Mal
  2. SELECT * FROM galeria WHERE album = Segundo MATCH
  3.  
  4. // Bien
  5. SELECT * FROM galeria WHERE album = 'Segundo Match'

Saludos
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 12/01/2012, 23:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con consulta.

Jeje por mas que yo pensaba se mostraba bien la consulta era ese el error, ahora que al parecer tiene solucion me pasa que sin importar para donde tire las comillas consigo o errores o esa misma sintaxis.

$sql1 = 'SELECT * FROM galeria WHERE album = '.$fila["albums"];

No puedo lograr que eso equivalente a esto:

Código PHP:
SELECT FROM galeria WHERE album Segundo Match 
se convierta en esto:

Código PHP:
SELECT FROM galeria WHERE album 'Segundo Match' 
  #4 (permalink)  
Antiguo 12/01/2012, 23:54
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con consulta.

Para poder hacer eso, tienes dos opciones:

1. Iniciar tu query con comillas dobles para poner 'Segundo Match' con comillas simples
2. Poner comillas simples en 'Segundo Match' escapándolas con \

Lee ésto:
http://www.forosdelweb.com/f18/como-...1/#post2414268

Saludos
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 13/01/2012, 01:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con consulta.

Perfecto, me costo pero ahi quedo, lo raro es que tengo otros casos donde aplico lo mismo que tenia y funcona perfectamente, ahora quedo asi:

paso de esto:

$sql1 = 'SELECT * FROM galeria WHERE album = '.$fila["albums"];

a esto:

$sql1 = "SELECT * FROM galeria WHERE album = '".$fila['albums']."'";

Pero en fin funciono, muchas gracias Sourcegeek.

Etiquetas: imagenes, mysql, 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 22:23.