Comunidad de diseño web y desarrollo en internet online

x campos de x tablas de bd mysql a excel

Citar            
MensajeEscrito el 05 Mar 2013 09:44 am
Hola, que tal os comento mi problema. Tengo una bd mysql de la cual tengo que extraer 5 campos de tres tablas diferentes las cuales tienen el campo id en común y descargarlas en excel.

La estructura es la siguiente:

BD

tabla1
ide, code, subjet, date.

tabla2
ide, messages.

tabla3
id, text.

Tengo el siguiente código que me descarga una tabla especifica completa.

<?php
header("Content-type: application/vnd.ms-excel" ) ;
header("Content-Disposition: attachment; filename=archivo.xls" ) ;
//en la sigte linea colocar entre comillas el nombre del servidor mysql (generalmente, localhost)
$servidor="******";
//en la sigte linea colocar entre comillas el nombre de usuario
$user="****";
//en la sigte linea colocar entre comillas la contraseña
$pass="****";
//en la sigte linea colocar entre comillas e nombre de la base de datos
$db="****";
//en la sigte linea colocar entre comillas e nombre de la tabla
$tabla="****";
mysql_connect($servidor,$user,$pass) ;
mysql_select_db($db) ;
$qry=mysql_query("select * from $tabla" ) ;
$campos = mysql_num_fields($qry) ;
$i=0;
echo "<table><tr>";
while($i<$campos){
echo "<td>". mysql_field_name ($qry, $i) ;
echo "</td>";
$i++;
}
echo "</tr>";
while($row=mysql_fetch_array($qry)){
echo "<tr>";
for($j=0; $j<$campos; $j++) {
echo "<td>".$row[$j]."</td>";
}
echo "</tr>";
}
echo "</table>";
?>

Me podríais ayudar. Me han dicho que use la sentencia LEFT JOIN pero la verdad que no se ni por donde empezar. :(

Por unlocktools

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Mar 2013 12:25 pm
Lo puedes hacer en una sola sentencia SQL.

Código MySQL :

SELECT * FROM `tabla1`, `tabla2`, `tabla3`
WHERE
`tabla1`.`ide` = `tabla2`.`ide` AND
`tabla2`.`ide` = `tabla3`.`id`

Aunque me parece rara la relación entre tablas que has usado porque esto resulta en una transitividad de dos niveles, lo cual es síntoma de que no has hecho bien la normalización.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

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