Foros del Web » Programando para Internet » PHP »

duda con tablas relacionadas

Estas en el tema de duda con tablas relacionadas en el foro de PHP en Foros del Web. hola Tengo dos tablas para ordenar las fotos de la página: tabla categoria -id_categoria -titulo tabla imagenes -id_imagen -id_categoria -url -comentario la referencia a las ...
  #1 (permalink)  
Antiguo 22/04/2010, 01:56
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Pregunta duda con tablas relacionadas

hola

Tengo dos tablas para ordenar las fotos de la página:

tabla categoria

-id_categoria
-titulo

tabla imagenes
-id_imagen
-id_categoria
-url
-comentario

la referencia a las fotos que subo las almaceno en la tabla "imagenes" en donde el campo id_categoria almacena el id_categoria (valga la redundandia) obtenido de la tabla "categoria" dicho id es numerico.

Ahora mediante un bucle while muestro un listado de las imagenes almacenadas en la base de datos (tabla imagenes) mostrando todos sus datos pero cuando deseo mostrar la categoria a la que pertenece dicha imagen me muestra el numero ID de la categoria (lógico por que fue eso lo que almacene en la tabla imagenes) pero me gustaría mostrar el nombre de la categoria y no su id.

Una posible solucion pero creo que es la MENOS correcta sería que en cada vuelta de bucle hiciera una nueva consulta pero a la tabla categoria y sacara el titulo de la gategoria en donde id_categoria de la tabla imagenes fuese igual a al id_categoria de la tabla categoria.

Otra solucion que creo podría ser que modificara todo y en lugar de almacenar el id_categoria, almacenara el nombre (campo titulo) de la categoria y asi me evito estar haciendo nuevas consultas en cada vuelta del bucle.

este es el codigo que tengo:

Código PHP:
<?php
// Instanciamos el objeto
$paging = new PHPPaging;
        
// Indicamos la consulta al objeto 
$paging->agregarConsulta("SELECT * FROM imagenes ORDER BY id_categoria");
$paging->porPagina(10);
// Ejecutamos la paginación
$paging->ejecutar();  
        
// Imprimimos los resultados, para esto creamos un ciclo while
while($datos $paging->fetchResultado()) { 
    echo 
"ID: ".$datos['id_imagen']; 
    echo 
"CATEGORIA: ".$datos['id_categoria']; 
    echo 
"FOTO: ".$datos['url']; 
    echo 
"COMENTARIO: ".$datos['comentario']; 
}
?>
Alguien me podría dar una mano de como tendría que hacerlo para dar con lo que necesito??

Gracias.
  #2 (permalink)  
Antiguo 22/04/2010, 03:27
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: duda con tablas relacionadas

Tienes que relacionar ambas tablas por el campo en común, que en este caso es id_categoria, la sentencia sql es la siguiente:

SELECT * imagenes INNER JOIN categoria ON imagenes.id_categoria = categoria.id_categoria

Esta es para sacar toda la información, pero yo te aconsejo que sea más específico y en vez de usar * lo use de la siguiente forma.

SELECT tabla.campo1 AS nombre, tabla.campo2 AS nombre2, tabla2.campo1 AS nombre3 ...

De este modo te evitas errores en el caso que coincida algun campo en ambas tablas.

Puedes relacionar cuantas tablas quieras, usado el INNER JOIN e uniéndolo con el campo en comun con ON

Espero que me entiendas, pruebalo a ver que tal

Saludos.

Etiquetas: relacionadas, tablas
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 17:29.