Muchas veces cuando vamos a crear proyectos con PHP y MySQL usamos muchas tables y regularmente recurrimos a escribir el comando SQL para crear la tabla. La Siguiente funcion nos creara el SQL para crear la Tabla apartir de un array , ejemplo :
CREATE TABLE usuarios(id int not null auto_increment primary key, username varchar(100),password varchar(40))
La base de la funcion se basara en dos cosas : un array asociativo y la funcion foreach de php, empezemos con nuestro php :
Lo primero que necesitamos sera contar los elementos del array, para ello crearemos la funcion contar(array) :
function contar($asocarray){ $elementos = 0; foreach($asocarray as $k => $v){ $elementos++; } return $elementos; }
Ahora continuamos con la funcion CrearTablaSQL($nombretabla,$arraytabla) que sera la que nos devolvera una cadena con el SQL para crear la tabla :
function CrearTablaSQL($nombretabla,$arraytabla){ /// seccion1 $elementos = contar($arraytabla); $sqltabla = "CREATE TABLE $tablename("; /// seccion 2 $contador=0; foreach($arraytabla as $clave => $tipo){ $sqltable .= "$clave $tipo"; if($contador<$elementos-1){ $sqltabla .=",";} $contador++; } /// seccion 3 $sqltabla .= ")"; return $sqltabla; }
La funcion esta dividida en 3 secciones la primera seccion definimos el numero de elementos en el array de las tablas, este sera necesario para saber cuando vamos a poner las comas que separaran cada token, se inicia la variable sqltabla que contendra nuestro resultado final.
En la seccion 2 recorremos cada elemento del array y con el if vamos a ir agregando comas mientras el elemento del array no sea el ultimo.
En la seccion 3 terminamos agregamos la cadena final a sqltabla y devolvemos el valor, asi un scrip terminado sera :
<?php function contar($asocarray){ $elementos = 0; foreach($asocarray as $k => $v){ $elementos++; } return $elementos; } function CrearTablaSQL($nombretabla,$arraytabla){ /// seccion1 $elementos = contar($arraytabla); $sqltabla = "CREATE TABLE $nombretabla("; /// seccion 2 $contador=0; foreach($arraytabla as $clave => $tipo){ $sqltabla .= "$clave $tipo"; if($contador
Al ejecutar el codigo PHP obtendremos :
Listo , a facilitarnos la vida 😉