≡ Menu

Como sacar el nombre de los campos en una tabla MySQL

Creo que soy de los que cuando se ponen a programar, pueden hace crlo mucho rato, muy bien y casi perfecto, pero cuando se encuentran algo que no tienen en mente de cómo hacer se estancan horas y horas…

El otro día me pasó algo parecido cuando estaba programando la calculadora de precios para la web de chapas publicitarias, butonet. Necesitaba sacar con PHP los nombres de los campos de una tabla MySQL.

Y después de (bastante) rato buscando, mirando y toqueteando me acabé creando una función que soluciona el problema. Aquí os la dejo por si a alguien le interesa.


function mysql_nombres_campos($tabla,$link) {
$query = "SELECT * FROM {$tabla}";
$resultado = mysql_query($query,$link);
$fila = mysql_fetch_assoc($resultado);
$columnas = array_keys($fila);
return $columnas;
}

Comments on this entry are closed.

  • http://www.noname.cl claudio

    Tu función resuelve el problema, pero está muy mal programada. Deberías revisarla y hacer menos artesanal.

    slds.-

    • http://www.manelgarcia.com/ manelgarcia

      Cómo crees que podría ser menos artesanal?

      Gracias por la respuesta.

  • plac3vo

    $query=SHOW COLUMNS {tabla}; Esto no es mas sencillo? Tiene problemas de rendimiento o es inseguro? yo lo suelo usar mucho cuando hago inserts en tablas y quiero reutilizar codigo.

  • Oscar

    Manel,

    Gracias por la función.

    Saludos.

  • carolina

    yo lo hice asi por que estoy mostrando la tabla en un pdf
    con mysql_num_fieds(tu consulta, num de campo) obtienes el total de campos y los lees atraves del for e imprimes

    //mostrar nombre del campo de la tabla en mysql
    for($i=0;$ipdf->SetFont(‘Arial’,’I’,8);
    $this->pdf->Cell(30,10,mysql_field_name($sql,$i),1,0,l);

    }

  • carolina

    te paso toda la funcion de como imprimir tabla con resultados espero sirva

    //funcion para crear para tabla del pdf
    public function tablaPdf($sql)

    {

    //mostrar nombre del campo de la tabla en mysql
    for($i=0;$ipdf->SetTextColor(0);
    // Asignar tipo de fuente Arial bold 15
    $this->pdf->SetFont(‘Arial’,’I’,8);
    $this->pdf->Cell(30,10,mysql_field_name($sql,$i),1,0,l);

    }

    while($resultado=mysql_fetch_array($sql)) {

    //salto de linea
    $this->pdf->Ln();
    // Asignar tipo de fuente Arial bold 15
    $this->pdf->SetFont(‘Arial’,’I’,8);
    //mostrar datos de la tabla

    //$this->pdf->Cell(30,10,$resultado['idUsuario'],1);
    $this->pdf->Cell(30,10,$resultado[
    ],1);
    $this->pdf->Cell(30,10,$resultado['nombreCompleto'],1);
    $this->pdf->Cell(30,10,$resultado['usuario'],1);
    $this->pdf->Cell(30,10,$resultado['perfil'],1);
    $this->pdf->Cell(30,10,$resultado['nivel'],1);
    $this->pdf->Cell(30,10,$resultado['password'],1);
    //salto de linea

    }

    //SALTO DE linea
    $this->pdf->Ln();
    }

  • carolina

    //se pego mal la parte del for la correcta es y lo k le sigue al codigo
    for($i=0;$i<mysql_num_fields($sql);$i++){