loading.........
Vaya mi tardanza pero no entraba a mi email y perdí este post xD
Pues bien el script no encuentra relacion en ninguna de las tablas osea no hace uso de claves foraneas para referirse a una tabla segun al otra este script solo te muestra
Cada Tabla con sus respectivas Columnas, sirve de mucho si vas a trabajar con alguna edicion de base de datos
El codigo que está mas arriba lo que hacìa era: Mostrar Todas las bases de datos del servidor con sus respectivas tablas.
Ahora este codigo muestra: Todas las tablas con sus respectivas columnas y se verifica que columnas fueron seleccionadas lamentablemente no pude hacer que la seleccion de columnas fueran multiples =( creo que hay que manejar bien javscript para que agarre un array para expandir los datos dentro de su camio automàtico.
Estoy usando palabras como PADRE que referencia a la TABLA e HIJO a su respectiva columna para ubicarse mejor.
Puse el Script en un servidor gratuito que tengo instalado phpBB
http://usuarios.lycos.es/oraculomist...automatico.php
Se puede ver como se generan las tablas y columnas, veanlo.
Código PHP:
<?php
//La conexion
$server="localhost";
$usuario="";
$pass="";
$labasededatos="";
//Conexion con la Base de Datos
$bdconex = mysql_connect($server,$usuario,$pass);
mysql_select_db($labasededatos,$bdconex);
?>
<html>
<head>
<style>
<!--
BODY {
cursor : crosshair;
font-family:Tahoma;
font-size: 8pt;
margin-left:0; margin-right:0
font-color:#FFB76F;
background-color: #ffffff
}
TD{font-family:Tahoma;font-size: 8pt;}
select {font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;font-size: 8pt;color: #666666;
background-color: #ffffff;}
input {font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 8pt;
}
-->
</style>
<script language="JavaScript">
var alaBDes = new Array(
<?php
//Mostramos todas las tablas para crear los PADRES
$az = mysql_query("SHOW TABLES");
echo"\"Selecciona la Tabla\"";
//Comenzamos a generar el Array PADRE
while ($bd = mysql_fetch_array($az)) {
//Escribimos nombres para los PADRES de acuerdo al nombre de todas las Tablas
echo ",\"".$bd[0]."\"";
}
echo");
var aTABLITAS0 = new Array(\"\");
";
//Mostramos todas las tablas para crear los PADRES
$ay = mysql_query("SHOW TABLES");
$a=1;
//Generar los Arrays HIJOS de acuerdo al PADRE de cada uno de Ellos
while ($bd = mysql_fetch_array($ay))
{
//Escribimos nombres los HIJOS de acuerdo al nombre del PADRE
echo"aTABLITAS$a = new Array(";
//llenamos el array HIJOS con los nombres de las columnas de acuerdo al nombre del PADRE
$tb = @mysql_query("SELECT * FROM ".$bd[0]);
$a2 = 0;
echo"\"Selecciona la Columna\"";
while ($a2 < mysql_num_fields($tb))
{
//escribimos nombres de columnas
echo ",\"".mysql_field_name($tb,$a2)."\"";
$a2++;
}
//liberamos memoria
mysql_free_result($tb);
echo");
";
$a++;
}
//liberamos memoria
mysql_free_result($ay);
//Volvemos a declarar a los Arrays PAdres
echo"var aTABLITAS = new Array(
aTABLITAS0";
$x=1;
//Mostramos todas las tablas para crear los PADRES
$ah = mysql_query("SHOW TABLES");
while ($b = mysql_fetch_array($ah)) {
//Escribimos la cantidad de Arrays Que necesitamos para los PADRES
echo",aTABLITAS$x
";
$x++;
}
mysql_free_result($ah);
echo");
";
?>
function opcion(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}
function cambia(oMster, oCntrl){
var nSelected = oMster.selectedIndex;
while (oCntrl.length) oCntrl.remove(0);
for(var i = 0; i < aTABLITAS[nSelected].length; i++)
opcion(oCntrl, i, aTABLITAS[nSelected][i], String(i));
}
function llena(oCntrl){
while (oCntrl.length) oCntrl.remove(0);
for(var i = 0; i < alaBDes.length; i++)
opcion(oCntrl, i, alaBDes[i], String(i));
}
</script>
</head>
<body>
<?php
echo"<form name=frm action=".$_SERVER['PHP_SELF']." method=GET>";
?>
<table align=center border=1><tr>
<td align=center>Tablas</td><td align=center>Columnas</td>
</tr><tr> <td align=center>
<select name="PADRE" onchange="cambia(this, document.frm.HIJO)">
<option value=""> </option>
</select></td><td align=center>
<select name="HIJO">
<option value=""> Selecciona la Tabla</option>
</select></td></tr>
<tr><td colspan=2 align=center>
<input type=submit name='ok' value='Trabajar con la Seleccion'>
</td></tr></table>
</form>
<script language="JavaScript">
llena(document.frm.PADRE);
</script>
<br><br>
<?php
if(isset($_GET['ok']))
{
if(!empty($_GET['PADRE']))
{
$az = mysql_query("SHOW TABLES");
//Comenzamos la busqueda del PADRE
$a=1;
while ($bd = mysql_fetch_array($az)) {
if(!empty($_GET['HIJO']))
{
//Si contiene una seleccion hacemos la busqueda respectiva
//segun el PADRE que se haya elegido
//osea le buscamos el hijo al padre
$buscarHIJO = mysql_query("SELECT * FROM ".$bd[0]);
$k = 0;
while ($k <= mysql_num_fields($buscarHIJO))
{
//Comparamos lo que se eligiò en el select con los hijos del padre
if($k == $_GET['HIJO'])
{
//y asignamos el nombre que encontrò a la varibale HIJOd
$HIJOd=mysql_field_name($buscarHIJO,$k-1);
//Se encontrò al hijo terminamos la busqueda
break;
}
$k++;
}
mysql_free_result($buscarHIJO);
}else{$HIJOd="Simplemente no se Seleccionò nada";}
//Hacemos la busqueda del PADRE
if($a==$_GET['PADRE'])
{
//PADRE ya fuè encontrado terminamos el bucle
//y asignamos el nombre que encontrò a la varibale PADRE
$PADRE=$bd[0];break;}
//liberar memoria
@mysql_free_result($buscarHIJO);
$a++;
}
echo"<div align=center>La Tabla Seleccionada(PADRE) es: <b>".$PADRE."</b> La Columna(HIJO) es: <b>".$HIJOd."</b></div>";
}
else{}
}
?>
</body>
</html>
Ahora bien no domino para nada Javascript el script para los combos fuè tomado de su FAQ.
En las Faq de PHP cluster puso un script para buscar relacion de tablas con una clave forànea podrìa hacerse tambien con javascript
serìa interesante.
connection closed.