PHP Classes

File: generador_sql_1.0.2.php

Recommend this page to a friend!
  Classes of Devta Singh   php_form_generator   generador_sql_1.0.2.php   Download  
File: generador_sql_1.0.2.php
Role: ???
Content type: text/plain
Description: class generator
Class: php_form_generator
Author: By
Last change:
Date: 22 years ago
Size: 11,248 bytes
 

Contents

Class file image Download
<? #generador_sql_1.0.2.php /* #generador de sentencias SQL toma una cadena de texto con la definicion de tablas y obtiene la lista de campos y determina el tipo de los campos. A partir de ahí genera las secuencias SQL estándard para una clase de mysql que las utilice y las presenta en pantalla y salva a disco. */ $programa="generador_sql"; $version="1.0.2"; $carpeta_inc="inc/"; $fichero_config="config.inc.php"; //error_reporting(80); include($carpeta_inc.$fichero_config); if(!$viejo){ //toma datos //include("generador_form1.0.2.html"); include($carpeta_inc.$fichero_formulario); exit; } else { //comprueba datos críticos print "\n<br>motor_basedatos: $motor_basedatos\n<br>"; if(!$tabla || !$clase || !$objeto){ print "Los datos: TABLA, CLASE y OBJETO no se pueden dejar en blanco<br><a href=\"javascript:history.go(-1);\">Vuelve atrás y completalos</a>"; exit; } //elabora datos y presenta resultados $clase_origen=$clase; $objeto_origen=$objeto; $tabla_origen=$tabla; $sql=explode("\n",$sql_input); $n=sizeof($sql); $k=0; //print "TABLAS: $generar_tablas"; if($generar_tablas){ if($valign=="top"){ $valign=" valign=\"top\""; }elseif($valign=="bottom"){ $valign=" valign=\"bottom\""; } $tabla1="\n\n<table>"; $tr1="\n <tr>"; $tr2="\n </tr>"; $td1="\n <td$valign$align> "; $td2="\n </td>"; $tabla2="\n</table>\n"; } else { $tabla1=""; $tr1=""; $tr2=""; $td1=""; $td2=""; $tabla2=""; } //bucle que recorre los campos analizandolos y generando os arrays //$campos[] y $tipos[] for ($c=0;$c<$n;$c++){ //si la linea de creación de tabla está incluida //salta esta iteración if(strstr($sql[$c], "CREATE TABLE")){ continue; } //si la linea de fin de creacion de tabla esta incluida //salta esta iteración if(strstr($sql[$c], ");")){ continue; } list($campo,$propiedades)=explode(" ",$sql[$c]); //print "\n<br>$c - $sql[$c] - $campo - $propiedades"; $campos[$c]=$campo; $tipo=strtolower(strtok($propiedades," ")); $estextarea=0; if(strstr($tipo, "integer")){ $escadena[$c]=0; }elseif(strstr($tipo, "int")){ $escadena[$c]=0; }elseif(strstr($tipo, "smallint")){ $escadena[$c]=0; }elseif(strstr($tipo, "tinyint")){ $escadena[$c]=0; }elseif(strstr($tipo, "datetime")){ $escadena[$c]=1; }elseif(strstr($tipo, "timestamp")){ $escadena[$c]=1; }elseif(strstr($tipo, "date")){ $escadena[$c]=1; }elseif(strstr($tipo, "time")){ $escadena[$c]=1; }elseif(strstr($tipo, "year")){ $escadena[$c]=1; }elseif(strstr($tipo, "float")){ $escadena[$c]=1; }elseif(strstr($tipo, "varchar")){ $escadena[$c]=1; }elseif(strstr($tipo, "text")){ $escadena[$c]=1; $estextarea=1; }else{ $escadena[$c]=-1; } $tipos[$c]=$tipo; //print "\n<br>$c - $campos[$c] - $escadena[$c]"; if(strstr(strtolower($sql[$c]), "primary")){ $num_id=$c; //print "*"; } else { //print ""; } if($escadena[$c]==1){ $comilla="'"; }else{ //$comilla=""; $comilla="'"; } if($c<($n-1)){ $coma=","; }else{ $coma=""; } if(($num_id==$c)&&($motor_basedatos=="odbc")){ $query_intro1.= $campos[$c].$coma."\n"; $query_intro2.= $comilla."$".$campos[$c].$comilla.$coma."\n"; } if(strstr($sql[$c],"auto_increment")){ //continue; }elseif($num_id==$c){ print "\n<br>$num_id - $c - $campos[$c]"; }else{ $query_actualiza1.="$campos[$c]=".$comilla."$".$campos[$c].$comilla.$coma."\n"; $query_intro1.= $campos[$c].$coma."\n"; $query_intro2.= $comilla."$".$campos[$c].$comilla.$coma."\n"; } $lista_campos.=$campos[$c]."\n"; if($estextarea==1){ $campos_formulario.=$tr1.$td1."\n$campos[$c]:".$td2.$td1."<TEXTAREA NAME=\"$campos[$c]\" COLS=\"50\" ROWS=\"6\">\$this->$campos[$c]</TEXTAREA><BR>".$td2.$tr2; } else { $campos_formulario.=$tr1.$td1."\n$campos[$c]:".$td2.$td1."<INPUT TYPE=\"$tipo2\" NAME=\"$campos[$c]\" SIZE=\"$tam_campo\" VALUE=\"\$this->".$campos[$c]."\"><BR>".$td2.$tr2; } $rotulos_tabla.="\n\t\t\t<td>$campos[$c]</td>"; $valores_tabla.="\n\t\t\t\t<td>\$$campos[$c]</td>"; $valores_listado.="\n\t\t\t\t<tr><td><b>$campos[$c]:</b></td><td>\$$campos[$c]</td></tr>"; $id=$datos[$campos[$num_id]]; //print "<h1>$num_id - $campos[$num_id] - $id</h1>"; //print "<h4>\$id=$$campos[$num_id]</h4>"; if($motor_basedatos=="mysql"){ $variables.="\n var \$".$campos[$c].";"; $recuperacion_datos.="\n \$this->".$campos[$c]."=\$datos[\"$campos[$c]\"];"; $recuperacion_datos0.="\n \$".$objeto."->".$campos[$c]."=\"\";"; $recuperacion_datos2.="\n \$".$objeto."->".$campos[$c]."=\$datos[\"$campos[$c]\"];"; $recuperacion_datos3.="\n\$$campos[$c]=\$datos[\"$campos[$c]\"];"; }elseif($motor_basedatos=="odbc"){ $variables.="\n var \$".$campos[$c].";"; $recuperacion_datos.="\n \$this->".$campos[$c]."=\$datos[\"$campos[$c]\"];"; $recuperacion_datos0.="\n \$".$objeto."->".$campos[$c]."=\"\";"; $recuperacion_datos2.="\n \$".$objeto."->".$campos[$c]."=\$datos[".$c."];"; $recuperacion_datos3.="\n\$$campos[$c]=\$datos[".$c."];"; } }//fin del bucle de campos //print "<h4>$recuperacion_datos3</h4>"; $campo_id=$campos[$num_id]; if($escadena[$num_id]==1){ $comilla_id="'"; }else{ $comilla_id=""; } //print "<p>CAMPO_ID: $campo_id = $campos[$num_id] ($num_id)<p>"; $query_intro="INSERT INTO $tabla (\n".$query_intro1.")VALUES(\n".$query_intro2.")"; //$query_actualiza="UPDATE $tabla SET\n".$query_actualiza1."\nWHERE $campo_id=".$comilla_id."\$id".$comilla_id; $query_actualiza="UPDATE $tabla SET\n".$query_actualiza1."\nWHERE $campo_id=".$comilla_id."\$$campo_id".$comilla_id; //$query_elimina="DELETE FROM $tabla WHERE $campo_id=".$comilla_id."\$id".$comilla_id; $query_elimina="DELETE FROM $tabla WHERE $campo_id=".$comilla_id."\$$campo_id".$comilla_id; $campos_formulario.=$tr1.$td1.$td2.$td1."<INPUT TYPE=\"SUBMIT\" VALUE=\"Grabar Datos\"><input type=\"hidden\" name=\"opcion\" value=\"\$this->form_opcion\">".$td2.$tr2; $campos_formulario=$tabla1.$campos_formulario.$tabla2; $pre_form.="<FORM ACTION=\"\$REQUEST_URI\" METHOD=\"$metodo\" NAME=\"form_$tabla\">"; $form_campo_id.="<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"".$id."\">"; $post_form="</FORM>"; $form1=$pre_form.$campos_formulario.$form_campo_id.$post_form; //si es ODBC hay que rematar las querys con un punto y coma if($motor_basedatos=="odbc"){ $query_pre_intro="SELECT MAX($campo_id) AS maximo FROM $tabla;"; $query_intro.=";"; $query_actualiza.=";"; $query_elimina.=";"; } ############################################## ############################################## ############################################## ############################################## //determinamos la ruta para incluir el fichero que contiene la clase base $inclusion=$carpeta_inc.$clase_base; if(include($inclusion)){ //print "\n<br>Include realizado con éxito ($inclusion)..."; }else { print "\n<br><b>ERROR: Include fallido ($inclusion)...</b>"; } ############################################## ############################################## ############################################## ############################################## //si se ha marcado "generar fichero" if($generar_fichero){ //genera el fichero de clase $fichero_salida="class_".$clase_origen.".php"; $fichero=$fichero_salida; $fich=fopen($fichero,"w"); $fichero_final_clase=$fichero; $longitud=strlen($clase_objeto); //if(fputs($fich, $clase_objeto, $longitud)){ ################## //print "\n<hr>fich: $fich - clase: $clase_objeto - fichero: $fichero - longitud: $longitud"; if(fputs($fich, $clase_objeto)){ print "\nEscritura del fichero de clase ($fichero) OK...\n<br>"; $fichero_clase=$fichero; } else { print "\nERROR al escribir el fichero del clase ($fichero)...\n<br>"; } fclose($fich); //genera el fichero de clase $querys=" ORIGEN: ------------------------- $sql_input -------------------------\n\n<br><br> INSERCION: ------------------------- $query_intro -------------------------\n\n<br><br> ACTUALIZACION: ------------------------- $query_actualiza -------------------------\n\n<br><br> ELIMINA: ------------------------- $query_elimina -------------------------\n\n<br><br> LISTA DE CAMPOS: ------------------------- $lista_campos -------------------------\n\n<br><br> "; if(!$tabla){ $tabla="kk.sql"; $carpeta=""; } else { $tabla=$tabla.".sql"; } if($carpeta){ $fichero=$carpeta."/".$tabla; }else{ $fichero=$tabla; } $fich=fopen($fichero,"w"); $fichero_final_sql=$fichero; if(fputs($fich, $querys)){ print "\nEscritura del fichero de consultas SQL ($fichero) OK...\n<br>"; } else { print "\n<b>ERROR al escribir el fichero SQL ($fichero)...</b>\n<br>"; } fclose($fich); } } print "\n<br><br>Ahora voy a generar el menu.\n<br>Utilizando la clase $fichero_clase"; //print "\n<br><br>$recuperacion_datos2"; print "\n<br>--------------------------------------------"; $plantilla=file($carpeta_inc."menu_plantilla_".$motor_basedatos.".php"); $plantilla=implode("", $plantilla); //print "\n<br>Clase: $clase - Objeto: $objeto - Tabla: $tabla"; //print "\n<br>Clase_origen: $clase_origen - Objeto_origen: $objeto_origen - Tabla_origen: $tabla_origen"; //print "\n<br>Clase: $clase - Objeto: $objeto - Tabla: $tabla"; print "\n<br>Resumen:\n<br>Clase: $clase\n<br>Objeto: $objeto\n<br>Tabla:: $tabla\n<br>\n<br>"; $plantilla=str_replace("##motor_basedatos##",$motor_basedatos,$plantilla); $plantilla=str_replace("##campo_id##",$campo_id,$plantilla); $plantilla=str_replace("##objeto##",$objeto_origen,$plantilla); $plantilla=str_replace("##clase##",$clase_origen,$plantilla); $plantilla=str_replace("##tabla##",$tabla_origen,$plantilla); $plantilla=str_replace("##asign_var_cero##",$recuperacion_datos0,$plantilla); $plantilla=str_replace("##asign_var_editar##",$recuperacion_datos2,$plantilla); $plantilla=str_replace("##sql_pre_intro##",$query_pre_intro,$plantilla); $plantilla=str_replace("##sql_intro##",$query_intro,$plantilla); $plantilla=str_replace("##sql_editar##",$query_actualiza,$plantilla); $plantilla=str_replace("##id_objeto##",$campo_id,$plantilla); $plantilla=str_replace("##rotulos_tabla##",$rotulos_tabla,$plantilla); $plantilla=str_replace("##valores_tabla##",$valores_tabla,$plantilla); $plantilla=str_replace("##valores_listado##",$valores_listado,$plantilla); $plantilla=str_replace("##recuperacion_datos3##",$recuperacion_datos3,$plantilla); //$recuperacion_datos3 //$f=fopen("menu_final.php","w"); $f=fopen("menu_".$tabla_origen.".php","w"); fputs($f,$plantilla); fclose($f); print "\n<br>listo"; ?>