la relación es que de la tabla principal a las secundarias es 1 a 1, en cambio con la tabla puente la relación es varios a uno.
cuando hago un select para mostrar los datos que quiero de la bbdd los registros que tienen más de una entrada en la tabla puente los repite por cada entrada en la bbdd.
en este código recojo los datos:
Código PHP:
<html>
<head> <title>listado de proyectos</title></head>
<body>
<?
//Conexion con la base
mysql_connect("localhost","daniel","daniel");
mysql_select_db("gestion");
//consulta de las 3 tablas que se quieren visualizar.
$sSQL="select * from principal, descriptor, localizacion, tabla_puente_descriptor
where principal.id_plantilla = tabla_puente_descriptor.id_plantilla
and descriptor.id_descrip = tabla_puente_descriptor.id_descrip
and principal.id_localizacion = localizacion.id_localizacion";
$result=mysql_query($sSQL);
while ($row=mysql_fetch_array($result)){
echo "<table border=2> <tr><td>";
echo $row['id_plantilla'];
echo "</td><td><td></td><td></td></tr>";
echo "<tr><td>titulo</td><td>";
echo $row['titulo'];
echo "</td><td>localización:</td><td>";
echo $row['hijo'];
echo "</td></tr><tr><td>fecha de inicio</td><td>";
echo $row['fecha_inicio'];
echo "</td><td>Fecha fin:</td><td>";
echo $row['fecha_fin'];
echo "</td></tr><tr><td>Descriptores:</td><td>";
echo $row['id_descrip'];
echo "</td></tr><tr><td>Descripcion:</td><td>";
echo $row['descripcion'];
echo "</td></tr></table><br><hr>";
}
?>
</body>
</html>
43
titulo titulo localización: asturias
fecha de inicio 2007-07-06 Fecha fin: 2007-08-06
Descriptores: 1
Descripcion: lalalalaalalalla
44
titulo titulo localización: asturias
fecha de inicio 2007-07-06 Fecha fin: 2007-08-06
Descriptores: 1
Descripcion: lalalalaalalalla
44
titulo titulo localización: asturias
fecha de inicio 2007-07-06 Fecha fin: 2007-08-06
Descriptores: 3
Descripcion: lalalalaalalalla
45
titulo titulo localización: Madrid cam
fecha de inicio 2007-02-12 Fecha fin: 2007-02-19
Descriptores: 1
Descripcion: trialara
45
titulo titulo localización: Madrid cam
fecha de inicio 2007-02-12 Fecha fin: 2007-02-19
Descriptores: 3
Descripcion: trialara
lo que quiero es que por el campo descriptores salgan el elemento, una coma y el siguiente elemento.
lo he intentado con la función foreach, pero no lo que me devolvía era todos los registros de la bbdd.
alguien me puede ayudar por favor.
gracias.
oskar calvo