Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/01/2015, 11:25
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema al listar tabla relacionadas

Los mensajes de PHP no son tema de este foro. Solo trataremos aqui con lo referido a SQL. Esos mensajes solo nos dicen que no estás obteniendo resultados, es decir que la consulta no dispara errores pero devuelve un resultado vacío.
Por lo pronto hay que tener en cuenta que para que la consulta que haces devuelva algo, todas las condiciones que pones en el WHERE deben obligatoriamente cumplirse con al menos un registro al mismo tiempo... ¿Eso lo verificaste manualmente?

Lo primero que deberías hacer es verificar primero si realmente tienes datos que cumplan la condición básica, la que relaciona las tablas, y es mejor no hacerlo con JOIN implícitos, sino explicitos:
Código MySQL:
Ver original
  1.     V.idvideo,
  2.     V.nombre,
  3.     V.link,
  4.     V.sinopsis,
  5.     V.fecha,
  6.     V.direccion,
  7.     G.idvideo,
  8.     G.idgenero
  9.     video V INNER JOIN gen_video G ON V.idvideo = G.idvideo
Si esa consulta devuelve al menos un registro, está bien escrita y hay datos. Si hay más de un registro en cada tabla.. entonces tienes datos sucios en alguna parte, porque debería devolver al menos un registro de Video por cada Genero con el que se relacione.

Ahora bien, si todo anda bien, pero las condiciones son opcionales, es decir, no todas pueden estar siendo cargadas o algunas sólo se cumplen en unos registros y no en otros, esa consulta no te devolverá esos registros de cumplicmiento parcial.
¿Se enteinde?
En ese caso, cuando son opcionales, corresponde usar OR y no AND:
Código MySQL:
Ver original
  1.     V.idvideo,
  2.     V.nombre,
  3.     V.link,
  4.     V.sinopsis,
  5.     V.fecha,
  6.     V.direccion,
  7.     G.idvideo,
  8.     G.idgenero
  9.     video V INNER JOIN gen_video G ON V.idvideo = G.idvideo
  10.     V.nombre LIKE '%$nombre%'
  11.     OR V.link LIKE '%$link%'
  12.     OR V.sinopsis LIKE '%$sinopsis."%'
  13.     OR V.fecha LIKE '%$fecha%'
  14.     OR V.direccion LIKE '%$direccion%'
  15.     OR V.idgenero LIKE '%$generos%';
Estoy depurando un poco tu código para hacerlo mas legible. A nivel de PHP, es mejor transferir los parametros recibidos a variables, cosa de poder manejar un código mas limpio (tema off topic, pero que valía la pena aclarar).

Y antes de que preguntes: Esos "V" y "G", son alias dados a las tablas para facilitar la legibilidad del SQL. (ver http://dev.mysql.com/doc/refman/4.1/en/identifiers.html)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)