¿Cómo recuperar los campos y sus tipos de tablas MySQL?
Hola, amigos.
Necesito que me informéis de cómo puedo obtener desde PHP la estructura de una tabla (nombre de sus campos, tipo y dimensión) en MySQL.
Si fuese genérico para obtener esa información de cualquier base de datos, magnífico.
Muchas gracias por anticipado y saludos.
Necesito que me informéis de cómo puedo obtener desde PHP la estructura de una tabla (nombre de sus campos, tipo y dimensión) en MySQL.
Si fuese genérico para obtener esa información de cualquier base de datos, magnífico.
Muchas gracias por anticipado y saludos.
AQUI TE ENVIO UN SCRIPT EN DONDE HAGO UNA BUSQUEDA DE ACUERDO A UN CAMPO "SEARCH" DE UN SITIO
EN EL MISMO CONSULTO Y EXTRAIGO DATOS DE UNA BASE MYSQL , PUNTUALMENTE DE LA TABLA FAQ Y ENVIO LOS DATOS A UNA TABLA PARA SER MOSTRADOS.
CUALQUIER COSA A TU DISPOSICION
-----------------------------
<?PHP
// REALIZO LA CONEXION AL SERVER MYSQL
$myconn = mysql_connect("localhost","USUARIO","CONTRASEÑA");
if (! $myconn) {
echo "Can´t open MySql Server";
exit();
}
// CONECTO AHORA A LA BASE DE DATOS
If (! @mysql_select_db("BASEDEDATOS",$myconn)){
echo "Can't open database...";
exit();
}
// TRAIGO EL VALOR DEL CUADRO DE TEXTO (SEARCH) y LO GUARDO EN $CONSULTA
$consulta = $HTTP_GET_VARS["txtbusca"]; // $consulta = $_GET["txtbusca"]; (despues de php 4.0)
$busca = $consulta; // guardo el resultado para imprimirlo al final
echo "<BR>";
// SE VERIFICA QUE EL CAMPO DE BUSQUEDA NO ESTE VACIO
if (strlen($busca)==0) {
echo "Please enter a valid date";
exit();
}
// CON ESTA FUNCION ARMO UN VECTOR CON LAS PALABRAS INGRESADAS POR EL USUSARIO
$consulta = split(" ",$consulta);
// TOMO EL VALOR DE LOS BOTONES RADIO Y BIFURCO EL CODIGO DE ACUERDO A SU VALOR
$quehago = $HTTP_GET_VARS["elige"];
// POR LAS RESPUESTA POSITIVA EJECUTO EL CODIGO faq, POR LA NEGATIVA EL products
if ($quehago == "faq") {
//********************** AQUI COMIENZA EL CODIGO PARA LA CONSULTA A LA TABLA faq ***********************
// ARMO LA SENTENCIA SQL DE CONSULTA EN LA TABLA
$sql = "SELECT * FROM faq WHERE ";
for($a = 0; $a < count($consulta); $a++){
if ( $consulta[$a] != " "){
If ($a != 0){
$sql.="OR ";
}
$sql.="pregunta LIKE '%".$consulta[$a]."%'";
}
}
//echo $sql;
// EJECUTO LA CONSULTA ARMADA ANTES EN LA BASE
$result = mysql_query($sql);
if (! $result){
echo "query fatal error";
exit();
}
// CON LA FUNCION mysql_fetch_array, IMPRIMO LOS RESULTADOS
echo "The Replies for : " .$busca."are:";
echo "<BR>";
$cont = 0; // Controla si hay màs de un registro
while ($row = mysql_fetch_array($result)){
while($cont<1){
// La primera vez cont=0 --> armo la tabla y cargo los titulos
echo "<BR>";
echo "<table width=700 border=1 cellspacing=1 cellpadding=0 style= border: 1px solid; border-color: #6D6D6D > ";
echo "<TR> <td width=50% align left><font class="txtTitulo">".
"Question" . "</td>" . "<td width=50% align left><font class="txtTitulo">".
"Reply". "</TR> " ;
$cont++ ;
} //cierro el while del cont
//ya cont vale màs de Uno entonces armo los registros siguientes
echo "<TR> <td width=50% align left><font class="txtPregunta">".
$row["pregunta"] . "</td>" . "<td width=50% align left><font class="txtRespuesta">".
$row["respuesta"] . "</TR> " ;
} //cierro el while general
if ($cont >0) { // si es mayor a cero la tabla fue abierta, entonces hay que cerrarla
echo"</table>";
}
else{
echo "<BR>";
echo "<TR> <td width=50% align left><font class="txtTitulo">"."No results were found for your search. Try changing some of the words in your query" . "</td></TR> " ;
}
}
EN EL MISMO CONSULTO Y EXTRAIGO DATOS DE UNA BASE MYSQL , PUNTUALMENTE DE LA TABLA FAQ Y ENVIO LOS DATOS A UNA TABLA PARA SER MOSTRADOS.
CUALQUIER COSA A TU DISPOSICION
-----------------------------
<?PHP
// REALIZO LA CONEXION AL SERVER MYSQL
$myconn = mysql_connect("localhost","USUARIO","CONTRASEÑA");
if (! $myconn) {
echo "Can´t open MySql Server";
exit();
}
// CONECTO AHORA A LA BASE DE DATOS
If (! @mysql_select_db("BASEDEDATOS",$myconn)){
echo "Can't open database...";
exit();
}
// TRAIGO EL VALOR DEL CUADRO DE TEXTO (SEARCH) y LO GUARDO EN $CONSULTA
$consulta = $HTTP_GET_VARS["txtbusca"]; // $consulta = $_GET["txtbusca"]; (despues de php 4.0)
$busca = $consulta; // guardo el resultado para imprimirlo al final
echo "<BR>";
// SE VERIFICA QUE EL CAMPO DE BUSQUEDA NO ESTE VACIO
if (strlen($busca)==0) {
echo "Please enter a valid date";
exit();
}
// CON ESTA FUNCION ARMO UN VECTOR CON LAS PALABRAS INGRESADAS POR EL USUSARIO
$consulta = split(" ",$consulta);
// TOMO EL VALOR DE LOS BOTONES RADIO Y BIFURCO EL CODIGO DE ACUERDO A SU VALOR
$quehago = $HTTP_GET_VARS["elige"];
// POR LAS RESPUESTA POSITIVA EJECUTO EL CODIGO faq, POR LA NEGATIVA EL products
if ($quehago == "faq") {
//********************** AQUI COMIENZA EL CODIGO PARA LA CONSULTA A LA TABLA faq ***********************
// ARMO LA SENTENCIA SQL DE CONSULTA EN LA TABLA
$sql = "SELECT * FROM faq WHERE ";
for($a = 0; $a < count($consulta); $a++){
if ( $consulta[$a] != " "){
If ($a != 0){
$sql.="OR ";
}
$sql.="pregunta LIKE '%".$consulta[$a]."%'";
}
}
//echo $sql;
// EJECUTO LA CONSULTA ARMADA ANTES EN LA BASE
$result = mysql_query($sql);
if (! $result){
echo "query fatal error";
exit();
}
// CON LA FUNCION mysql_fetch_array, IMPRIMO LOS RESULTADOS
echo "The Replies for : " .$busca."are:";
echo "<BR>";
$cont = 0; // Controla si hay màs de un registro
while ($row = mysql_fetch_array($result)){
while($cont<1){
// La primera vez cont=0 --> armo la tabla y cargo los titulos
echo "<BR>";
echo "<table width=700 border=1 cellspacing=1 cellpadding=0 style= border: 1px solid; border-color: #6D6D6D > ";
echo "<TR> <td width=50% align left><font class="txtTitulo">".
"Question" . "</td>" . "<td width=50% align left><font class="txtTitulo">".
"Reply". "</TR> " ;
$cont++ ;
} //cierro el while del cont
//ya cont vale màs de Uno entonces armo los registros siguientes
echo "<TR> <td width=50% align left><font class="txtPregunta">".
$row["pregunta"] . "</td>" . "<td width=50% align left><font class="txtRespuesta">".
$row["respuesta"] . "</TR> " ;
} //cierro el while general
if ($cont >0) { // si es mayor a cero la tabla fue abierta, entonces hay que cerrarla
echo"</table>";
}
else{
echo "<BR>";
echo "<TR> <td width=50% align left><font class="txtTitulo">"."No results were found for your search. Try changing some of the words in your query" . "</td></TR> " ;
}
}
Muchas gracias gustigus, pero lo que necesito es recuperar la estructura de la tabla (nombre de los campos, tipo y dimensión), no el contenido.
De todas formas, agradezco tu interés.
De todas formas, agradezco tu interés.
TE RECOMIENDO ESTE FORO WWW.TECTIMES.COM
ENTRA A FOROS Y LUEGO A WEBMASTERS
HAY UN CHICO CON NICK NICOLASPAR Y OTRO CON NICK ALANCITO QUE SABEN MUCHISIMO QUIZAS ELLOS TE PUEDAN AYUDAR, SON DE CONTESTAR Y RAPIDO
ENTRA A FOROS Y LUEGO A WEBMASTERS
HAY UN CHICO CON NICK NICOLASPAR Y OTRO CON NICK ALANCITO QUE SABEN MUCHISIMO QUIZAS ELLOS TE PUEDAN AYUDAR, SON DE CONTESTAR Y RAPIDO
esta es una solucion posible espero te sirva es en php 5
<?php
/**
*
*
* @version $Id$
* @copyright 2005
**/
$conexion = mysql_connect("localhost","root","");
if (!$conexion)
{
echo "error al conectarse al servidor mysql";
exit();
}
if (!mysql_select_db("mynwind",$conexion))
{
echo "No se pudo conectar correctamente con la Base de datos";
exit();
}
?>
<SELECT name="empleado">
<?php
$query = "show me all tables "
//Bucle WHILE para mostrar los resultados...
while ($row = mysql_fetch_assoc($query))
{
?>
<OPTION value="<?php echo $row[\'EmployeeID\'] ?>"><?php echo $row[\'FirstName\']." ".$row[\'LastName\'];?></OPTION>
<?php
}
?>
</SELECT>
<?php
//genera la lista de tablas
$res = mysql_list_tables ("mynwind",$conexion);
$i = 0;
while ($i < mysql_num_rows ($res))
{
$tb_names[$i] = mysql_tablename ($res, $i);
$tablas = strtoupper($tb_names[$i]);
?>
<TABLE border="1" bgcolor="#E1E1E1">
<tr><td colspan="3" align="center"><?php echo $tablas ;?></td></tr>
<tr><td>Campo</td><td>Tipo</td><td>Size</td></tr>
<?php
$select = "SELECT * FROM ". $tb_names[$i];
$result = mysql_query($select);
$fields = mysql_num_fields($result);
$a = 0;
$table = mysql_field_table($result, $a);
//echo "Your \'".$table."\' table has ".$fields." fields and ".$rows." records <BR>";
//echo "The table has the following fields <BR>";
while ($a < $fields)
{
$type = mysql_field_type ($result, $a);
$name = mysql_field_name ($result, $a);
$len = mysql_field_len ($result, $a);
// $flags = mysql_field_flags ($result, $i);
?> <tr><td><?php echo $name?></td><td><?php echo $type;?></td><td><?php echo"(".$len.")";?></td></tr>
<?php $a++;
}
echo "<br>";
$i++;
}
?>
<?php
/**
*
*
* @version $Id$
* @copyright 2005
**/
$conexion = mysql_connect("localhost","root","");
if (!$conexion)
{
echo "error al conectarse al servidor mysql";
exit();
}
if (!mysql_select_db("mynwind",$conexion))
{
echo "No se pudo conectar correctamente con la Base de datos";
exit();
}
?>
<SELECT name="empleado">
<?php
$query = "show me all tables "
//Bucle WHILE para mostrar los resultados...
while ($row = mysql_fetch_assoc($query))
{
?>
<OPTION value="<?php echo $row[\'EmployeeID\'] ?>"><?php echo $row[\'FirstName\']." ".$row[\'LastName\'];?></OPTION>
<?php
}
?>
</SELECT>
<?php
//genera la lista de tablas
$res = mysql_list_tables ("mynwind",$conexion);
$i = 0;
while ($i < mysql_num_rows ($res))
{
$tb_names[$i] = mysql_tablename ($res, $i);
$tablas = strtoupper($tb_names[$i]);
?>
<TABLE border="1" bgcolor="#E1E1E1">
<tr><td colspan="3" align="center"><?php echo $tablas ;?></td></tr>
<tr><td>Campo</td><td>Tipo</td><td>Size</td></tr>
<?php
$select = "SELECT * FROM ". $tb_names[$i];
$result = mysql_query($select);
$fields = mysql_num_fields($result);
$a = 0;
$table = mysql_field_table($result, $a);
//echo "Your \'".$table."\' table has ".$fields." fields and ".$rows." records <BR>";
//echo "The table has the following fields <BR>";
while ($a < $fields)
{
$type = mysql_field_type ($result, $a);
$name = mysql_field_name ($result, $a);
$len = mysql_field_len ($result, $a);
// $flags = mysql_field_flags ($result, $i);
?> <tr><td><?php echo $name?></td><td><?php echo $type;?></td><td><?php echo"(".$len.")";?></td></tr>
<?php $a++;
}
echo "<br>";
$i++;
}
?>