PHP Classes

File: FormMaker0.0.5.php3

Recommend this page to a friend!
  Classes of Devta Singh   AutoFormFieldGenerator   FormMaker0.0.5.php3   Download  
File: FormMaker0.0.5.php3
Role: ???
Content type: text/plain
Description: This is a complete Menu to generate/edit Records using the Campo Class
Class: AutoFormFieldGenerator
Author: By
Last change:
Date: 23 years ago
Size: 16,554 bytes
 

Contents

Class file image Download
<? #Definiciones de variables de la BASE de DATOS $DBserver="server"; $DBusr="user"; $DBpwd="password"; $clase_campo="Campo_class_0105b.php3"; if(!$tabla_campos){$tabla_campos="campos";} #if(!$tabla){$tabla="prod_autor";} #if(!$tabla){$tabla="prod_autor2";} if(!$tabla){$tabla="";} if($nivel_){ $nivel=base64_decode($nivel); } $form_nombre="form1"; $form_metodo="post"; $form_accion="$SCRIPT_NAME"; $galleta_intervalo=120; $galleta_nombre="CookieSesionProductos"; #define el nombre de la tabla de usuarios $tb_usuarios="usuarios"; $tb_sesiones="sesiones"; #Conexión al servidor de base de datos $DBcnx=@odbc_connect($DBserver,$DBusr,$DBpwd); if(!$DBcnx){ print "\n<br>KAPUT<br><br>(No se pudo conectar al servidor...)"; exit; } ################################## ################################## ## FUNCIONES DE SESION ################################## ################################## function codificar($cadena){ return($cadena); } function decodificar($cadena){ return($cadena); } function doblar($usr,$expira){ $contenido=$usr."@".$expira; return($contenido); } function desdoblar($contenido){ $lista=explode("@",$base); return($lista); } ################################## ################################## ## FUNCIONES DE MENU ################################## ################################## #desplegable($nombre,$DBcnx,$tabla,$campo_valor,$campo_nombre,$campo_orden){ # $nombre es el nombre del control en el formulario (name="nombre") # $DBcnx es la conexión # $tabla es la tabla donde se hará la consulta # $campo_valor es el nombre del campo (en la tabla) que se quiere usar como valor (value="valor") en la lista desplegable # $campo_nombre es el texto que aparece en la lista de opciones de la lista desplegable <option ***>nombre</option> # $campo_orden es el nombre del campo sobre el que se hace la ordenación en la query # # desplegable("id_autor",$DBcnx,"prod_autor","id_autor","nombre","nombre") function desplegable($nombre,$DBcnx,$tabla,$campo_valor,$campo_nombre,$campo_orden,$nivel){ $query="SELECT $campo_valor,$campo_nombre,$campo_orden FROM $tabla WHERE auth>=$nivel ORDER BY $campo_orden ASC;"; $cursor=odbc_exec($DBcnx,$query); if(!$cursor){ print "\n<br>No se pudo obtener el listado de la tabla $tb_cat..."; exit; } $selec="\n<SELECT name=\"$nombre\">"; $f=1; while(odbc_fetch_into($cursor,$f,&$datos)){ $f++; $id=$datos[0]; if($id==$id0){ continue; } $id0=$id; $nom=$datos[1]; $selec.="\n<OPTION value=\"$id\">$nom</OPTION>"; } $selec.="\n</SELECT>"; return($selec); } function menu($nivel){ global $form_nombre,$form_metodo,$form_accion; global $nombre_usuario,$password,$tabla,$tabla_campos; //menu inicio_html(); //menu formulario_inicial(); print "\n<form name=\"$form_nombre\" method=\"$form_metodo\" action=\"$form_accion\">"; print "\n<table>"; #generar desplegables con tablas objeto para este usuario #desplegable($nombre,$DBcnx,$tabla,$campo_valor,$campo_nombre,$campo_orden); global $DBcnx; $nombre="tabla"; $tabla="campos"; $campo_valor="tabla"; $campo_nombre="tabla"; $campo_orden="tabla"; $lista_tablas=desplegable($nombre,$DBcnx,$tabla,$campo_valor,$campo_nombre,$campo_orden,$nivel); print "\n<tr><td align=\"right\">Tabla: </td><td>$lista_tablas</td></tr>"; print "\n<tr><td></td><td>"; print "\n<input type=\"hidden\" name=\"tabla_campos\" value=\"$tabla\">"; $nivel_=base64_encode($nivel); print "\n<input type=\"hidden\" name=\"nivel\" value=\"$nivel_\">"; print "\n<tr><td></td><td><input type=\"radio\" name=\"opcion\" value=\"nuevo\">generar nuevo<br>"; print "\n<input type=\"radio\" name=\"opcion\" value=\"editar\">editar existente "; print "\n ID: <input type=\"text\" name=\"id\" value=\"\" size=\"3\" maxlength=\"5\"><br>"; print "\n<input type=\"submit\" name=\"mandar\" value=\"Enviar Datos\"></td></tr>"; print "\n</table>"; print "</form>"; //menu menu_final(); //menu fin_html(); } #Hasta aquí todas las definiciones y comprabaciones, a partir de ahora #los distintos case utilizarán el usuario y nivel obtenidos hasta aquí ########################################### #####MAIN################################## ########################################### $nivel=base64_decode($nivel); switch($opcion){ ########################################### #####NUEVO################################# ########################################### case nuevo: #genera un formulario vacío para introducir datos nuevos { require("$clase_campo"); #menu inicio_html(); #$query="SELECT * FROM $tabla_campos WHERE tabla='$tabla' AND auth>=$nivel ORDER BY orden ASC;"; $query="SELECT * FROM $tabla_campos WHERE tabla='$tabla' ORDER BY orden ASC;"; $cursor=odbc_exec($DBcnx,$query); if(!$cursor){ print "\n<br>Sin cursor..."; print "\n<br>DBcnx: $DBcnx"; print "\n<br>Query: $query"; print "\n<br>cursor: $cursor"; exit; } else { print "\n<br>Cursor:$cursor"; } #print "\n<br>Cursor: $cursor\n<br> Query: $query"; ############### $campo_id="id"; #$campo_id="id_autor"; $query_max="SELECT MAX($campo_id) AS idmax FROM $tabla;"; $cursor_max=odbc_exec($DBcnx,$query_max); if($cursor_max){ $idmax=odbc_result($cursor_max,"idmax")+1; } else { $idmax=1; } print "\n<br>Query_max: $query_max - Maxid: $idmax"; ############### print "<form name=\"$form_nombre\" method=\"$form_metodo\" action=\"$form_accion\">"; $c=1; $k=0; $lista_campos=""; print "\n<table>"; while(odbc_fetch_row($cursor,$c)){ //establece los valores de las variables #$datos["nombre"]=odbc_result($cursor,"campo"); #$datos["nombre"]=odbc_result($cursor,"campos[$k]"); $datos["nombre"]=odbc_result($cursor,"campo"); $datos["tipo"]=odbc_result($cursor,"tipo"); $datos["valor"]=odbc_result($cursor,"valor"); $datos["longitud"]=odbc_result($cursor,"longitud"); $datos["longitud_maxima"]=odbc_result($cursor,"long_max"); $datos["valores"]=odbc_result($cursor,"valores"); $datos["evento"]=odbc_result($cursor,"evento"); $datos["evento_funciones"]=odbc_result($cursor,"evento_funciones"); $datos["habilitado"]=odbc_result($cursor,"habilitado"); $datos["rotulo"]=odbc_result($cursor,"rotulo"); $datos["rotulos"]=odbc_result($cursor,"rotulos"); $datos["rotulo_pos"]=odbc_result($cursor,"rotulo_pos"); $datos["rotulo_estilo"]=odbc_result($cursor,"rotulo_estilo"); $datos["es_cadena"]=odbc_result($cursor,"es_cadena"); ############# #$datos["id"]="id_autor"; $datos["id"]="id"; if(substr($datos["nombre"],0,2)=="id"){ $datos["valor"]=$idmax; } //crea la variable $campo[$c] a partir de $campo[$c]=$datos; #creacion del objeto campo $xnombre[$c]=new Campo($campo[$c]); print "\n\n<tr>"; print "\n <td>$c</td>"; print "\n <td align=\"right\"><span class=\"body\">$datos[rotulo]</span></td>\n <td>"; #impresion del campo llamando a su propia funcion imprime $codigo_html_campo=$xnombre[$c]->imprime(); print $codigo_html_campo; #print "\n<br>K: $k - Nombre: $datos[nombre]"; $lista_campos[$k]=$datos["nombre"]; $es_cadena[$k]=$datos["es_cadena"]; print "</td>\n</tr>"; $c++; $k++; }//fin del while if($lista_campos && $es_cadena){ $lista_campos=join(",",$lista_campos); $es_cadena=join(",",$es_cadena); } else { print "\n<br>(429)No hubo campos para crear formulario...\n<br>tabla: $tabla\n<br>Query: $query\n<br> :("; break; } print "\n</table>"; print "\n<input type=\"submit\" name=\"mandar\" value=\"Enviar Datos\">"; print "\n<input type=\"hidden\" name=\"lista_campos\" value=\"$lista_campos\">"; print "\n<input type=\"hidden\" name=\"es_cadena\" value=\"$es_cadena\">"; print "\n<input type=\"hidden\" name=\"opcion\" value=\"introducir\">"; print "\n<input type=\"hidden\" name=\"tabla\" value=\"$tabla\">"; $nivel_=base64_encode($nivel); print "\n<input type=\"hidden\" name=\"nivel\" value=\"$nivel_\">"; print "</form>"; $formulario=array($frm_datos,$campo,$plantilla); //menu menu_final(); //menu fin_html(); break; } ########################################### ####INTRODUCIR############################# ########################################### case introducir: { //menu inicio_html(); //menu formulario_inicial(); $lista_c=explode(",",$lista_campos); #$escadena[$c] $es_cadena=explode(",",$es_cadena); $n=sizeof($lista_c); $query="INSERT INTO $tabla "; $query.="("; for($c=0;$c<$n;$c++){ $nombre_ = $lista_c[$c]; $contenido = $$nombre_; #print "\n<br>$c: ($nombre_) - ($contenido)"; $query.="$nombre_"; if(($c+1)<$n){ $query.=", "; } } $query.=") values ("; for($c=0;$c<$n;$c++){ $nombre_ = $lista_c[$c]; $contenido = $$nombre_; #print "\n<br>$c: ($nombre_) - ($contenido)"; if($es_cadena[$c]==1){ $comilla="'"; } else { $comilla=""; } $query.=$comilla.$contenido.$comilla; if(($c+1)<$n){ $query.=", "; } } $query.=")"; $query.=";"; $cursor_datos=odbc_exec($DBcnx,$query); if(!$cursor_datos){ print "\n<br>Kaput... Sin cursor al ejecutar la query: $query"; exit; } else { print "\n<br>Guay, Cursor:$cursor\n<br>Query:$query"; } #phpinfo(); //menu menu_final(); //menu fin_html(); break; } ########################################### ######EDITAR############################### ########################################### case editar: #genera un formulario con datos a partir de un registro existente { require("$clase_campo"); //menu inicio_html(); #esta query toma las propiedades de los campos de la tabla de descripción de campos $query="SELECT * FROM $tabla_campos WHERE tabla='$tabla' ORDER BY orden ASC;"; $cursor=odbc_exec($DBcnx,$query); if(!$cursor){ print "\n<br>Sin cursor al ejecutar la query: $query"; exit; } #$campo_id="id_autor"; $campo_id="id"; $query_datos="SELECT * FROM $tabla WHERE $campo_id=$id;"; $cursor_datos=odbc_exec($DBcnx,$query_datos); if(!$cursor_datos){ print "\n<br>Sin cursor al ejecutar la query: $query_datos"; exit; } else { print "\n<br>GUAY Cursor:$cursor"; } $cd=1; # while(odbc_fetch_row($cursor_datos)){ # $valor_datos[$cd]=odbc_result($cursor_datos,$cd); # $cd++; # } $cd_=1; while(odbc_fetch_into($cursor_datos,$cd_,&$datos_recuperados)){ $n_=sizeof($datos_recuperados); for($c_=0;$c_<$n_;$c_++){ $valor_datos[$c_]=$datos_recuperados[$c_]; } $cd_++; } #print "\n<br>Numero de registros recuperados: $cd"; #print "\n<br>Numero de campos recuperados: $c_"; print "<form name=\"$form_nombre\" method=\"$form_metodo\" action=\"$form_accion\">"; $c=1; $k=0; $lista_campos=""; print "\n<table>"; while(odbc_fetch_row($cursor)){ //establece los valores de las variables #$datos["nombre"]=odbc_result($cursor,"campo"); #$datos["nombre"]=odbc_result($cursor,"campos[$k]"); $datos["nombre"]=odbc_result($cursor,"campo"); $datos["tipo"]=odbc_result($cursor,"tipo"); $datos["valor"]=odbc_result($cursor,"valor"); $datos["longitud"]=odbc_result($cursor,"longitud"); $datos["longitud_maxima"]=odbc_result($cursor,"long_max"); $datos["valores"]=odbc_result($cursor,"valores"); #$datos["valores"]=$valor_datos[$k]; $datos["evento"]=odbc_result($cursor,"evento"); $datos["evento_funciones"]=odbc_result($cursor,"evento_funciones"); $datos["habilitado"]=odbc_result($cursor,"habilitado"); $datos["rotulo"]=odbc_result($cursor,"rotulo"); $datos["rotulos"]=odbc_result($cursor,"rotulos"); $datos["rotulo_pos"]=odbc_result($cursor,"rotulo_pos"); $datos["rotulo_estilo"]=odbc_result($cursor,"rotulo_estilo"); $datos["es_cadena"]=odbc_result($cursor,"es_cadena"); #$valores[$k]=3; $datos["valor"]=$valor_datos[$k]; #print "\n<br>valor asignado: $datos[valor]"; //crea la variable $campo[$c] a partir de $campo[$c]=$datos; #creacion del objeto campo $xnombre[$c]=new Campo($campo[$c]); print "\n\n<tr>"; print "\n <td>$c</td>"; print "\n <td align=\"right\"><span class=\"body\">$datos[rotulo]</span></td>\n <td>"; #impresion del campo llamando a su propia funcion imprime $codigo_html_campo=$xnombre[$c]->imprime(); print $codigo_html_campo; $lista_campos[$k]=$datos["nombre"]; $es_cadena[$k]=$datos["es_cadena"]; print "</td>\n</tr>"; $c++; $k++; }//fin del while if($lista_campos && $es_cadena){ $lista_campos=join(",",$lista_campos); $es_cadena=join(",",$es_cadena); } else { print "\n<br>(610)No hubo campos para crear formulario...\n<br>Tabla: $tabla\n<br>Query: $query\n<br> :("; break; } print "\n</table>"; print "\n<input type=\"submit\" name=\"mandar\" value=\"Enviar Datos\">"; print "\n<br><input type=\"reset\" name=\"reset\" value=\"RESET*\"><br>*Usar sólo para restablecer los datos del formulario borrando las modificaiones introducidas"; print "\n<input type=\"hidden\" name=\"lista_campos\" value=\"$lista_campos\">"; print "\n<input type=\"hidden\" name=\"es_cadena\" value=\"$es_cadena\">"; print "\n<input type=\"hidden\" name=\"opcion\" value=\"actualizar\">"; print "\n<input type=\"hidden\" name=\"tabla\" value=\"$tabla\">"; $nivel_=base64_encode($nivel); print "\n<input type=\"hidden\" name=\"nivel\" value=\"$nivel_\">"; print "</form>"; $formulario=array($frm_datos,$campo,$plantilla); //menu menu_final(); //menu fin_html(); break; } ########################################### #####ACTUALIZAR############################ ########################################### case actualizar: { //menu inicio_html(); //menu formulario_inicial(); #query para obtener el nombre del campo ID de la tabla en cuestión $queryid="SELECT campo FROM $tabla_campos WHERE tabla='$tabla' AND orden=1;"; #ejecuta la query $cursorid=odbc_exec($DBcnx,$queryid); if(!$cursorid){ print"\n<br>Sin cursor al ejecutar la query: $queryid"; exit; } else { #en caso de exito $nombre_de_campo_id=odbc_result($cursorid,1); #obtiene el nombre de campo print "\n<br>Nombre de campo ID: $nombre_de_campo_id"; #obtiene el valor de ese campo print "\n<br>Valor (ID) ".$$nombre_de_campo_id; } #establece variables para delimitar la consulta de actualización $id_campo=$nombre_de_campo_id; $id=$$nombre_de_campo_id; #trocea la cadena en un array $lista_c=explode(",",$lista_campos); $es_cadena=explode(",",$es_cadena); #determina el tamaño del array $n=sizeof($lista_c); #comienza a establecer la cadena de la query... $query="UPDATE $tabla set "; #dibuja el cuerpo de la query... for($c=0;$c<$n;$c++){ $nombre_ = $lista_c[$c]; $contenido = $$nombre_; #establece la variable $comilla #vacía en caso de ser un valor (campo) numérico #o conteniendo la cadena ' en caso de ser alfabético (cadena) if($es_cadena[$c]==1){ $comilla="'"; } else { $comilla=""; } #sigue poniendo valores a la cadena de la query $query.="$nombre_=$comilla$contenido$comilla"; if(($c+1)<$n){ #si no es el ultimo elemento, pone una coma $query.=", "; } } #finaliza la query... $query.=" WHERE $id_campo = $id;"; #ejecuta la query en la base de datos... $cursor_datos=odbc_exec($DBcnx,$query); if(!$cursor_datos){ #si no hay cursor (fallo al ejecutar la query) print "\n<br>Sin cursor al ejecutar la query: $query"; exit; } else { #print "\n<br>Cursor:$cursor\n<br>Query:$query"; print "\n<br>OK..."; } #phpinfo(); //menu menu_final(); //menu fin_html(); break; } default: { //menu inicio_html(); //menu formulario_inicial(); menu(1); //menu menu_final(); //menu fin_html(); break; } }//fin del switch ?>