Comunidad de diseño web y desarrollo en internet online

AYUDA

Citar            
MensajeEscrito el 21 Ene 2010 12:56 pm
Hola amigos,

Tengo el siguiente problema que lo plantearé con un ejemplo:

Tengo dos tablas T1(idt1, nombre, apellidos) y T2(idt2, nombrepage)
y contienen los siguientes datos:

T1
idt1 nombre apellidos
1 Antonio Ruiz Carmona
2 Paco Matinez Molina
3 Maria Fernandez Sanchez

T2
idt2 idt1 nombrepage
1 3 maria-fernandez-sanchez
2 2 paco-martinez-molina


Y realizo la siguiente consulta:

consulta= "SELECT * FROM T1, T2 ORDER BY nombre";
$resultado = mysql_query($consulta, $conexion);
<table>
<tr>
<td>Nombre y Apellidos</td>
<td>FOTOS</td>
</tr>
<?
while($fila=mysql_fetch_array($resultado))
{
echo "<tr>";
echo "<td>".htmlentities($fila[nombre]." ".$fila[apellidos])."</td>";
echo"<td>".htmlentities($fila[nombrepage]."</td>";

echo "</tr>";
}
mysql_close($conexion);
?>
</table>
Y el resultado es:

Antonio Ruiz Carmona maria-fernandez-sanchez
Antonio Ruiz Carmona paco-martinez-molina
Paco Matinez Molina maria-fernandez-sanchez
Paco Matinez Molina paco-martinez-molina
Maria Ferandez Sanchez maria-fernandez-sanchez
Maria Ferandez Sanchez maria-fernandez-sanchez

¿Por qué me relaciona cada fila con cada una de las filas de la otra fila? Yo he creado las tablas tipo InnoDB.

Agradezco mucho vuestro tiempo y vuestra ayuda.

Un cordial saludo a todos.

Reme

Por reme

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Ene 2010 01:15 pm
Porque sí funciona el SELECT sin más. Teoía de conjuntos: a cada elemento de una tabla le corresponde cada uno de los elementos de la otra.

Lo que te ha faltado aquí es establecer la relación entre una tabla y la otra (de allí que se llame "modelo relacional"). En tu caso la relación está establecida por el campo idt1, entonces deberías hacer:

Código MySQL :

SELECT * FROM T1, T2 WHERE T1.idt1 = T2.idt1 ORDER BY T1.nombre

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 21 Ene 2010 09:41 pm
No importa que sean InnoDB si no tienes integridad referencial! U_U

PD: no coloques esos titulos tan poco descriptivos! :bofh:

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 24 Ene 2010 12:42 pm
Gracias por vuestra ayuda ya me funciona correctamente.

Un cordial saludo,

Remedios

Por reme

11 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.