Login   Register  
PHP Classes
elePHPant
Icontem

File: FormMaker0.0.5.php3

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  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: 2000-12-13 14:20
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
?>