Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/04/2003, 14:43
rvargas
 
Fecha de Ingreso: diciembre-2002
Ubicación: d.f
Mensajes: 79
Antigüedad: 21 años, 4 meses
Puntos: 0
Sonrisa ¿como simplifico esto?

Hola, nuevamente ., fijence que estoy haciendo un modulo el cual pueda desplegar toda la información correspondiente al usuario. Dicha información esta guardada en dos tablas maestras que contiene solo llaves foraneas(llaves primarias en otras tablas), ya lo consegui., sin embargo creo que hice mucho código y es muchoooo muyyyyyy posible que exista una respuesta más simplificada, o si tienen algún ejemplo se los agradecere.


Este script cacha un id que corresponde al usario, o un -1 si es que quiere ver atodos los aspirantes

<?php
include "../includes/funciones.php";

// Función despliega lel valor de los registros de las tablas
function display_rows($p_NameTabla, $p_NameId, $p_ValorId){
$GetResul_dr = 0; $GetNumReg_dr = 0; $k=0; $m=0;
$GetResul_dr = aplica_select($p_NameTabla, $p_NameId,$p_ValorId,'',0,'');
$GetNumReg_dr = aplica_select($p_NameTabla, $p_NameId,$p_ValorId,'',1,'');
$GetRow_dr = aplica_select($p_NameTabla, $p_NameId,$p_ValorId,'',3,'');
$GetNumCol_dr = aplica_select($p_NameTabla, $p_NameId,$p_ValorId,'',2,'');

// echo "entro a display_rows con: $p_NameTabla, $p_NameId, $p_ValorId<BR/>";
echo "<table align=center>";
for ($k=0; $k<$GetNumReg_dr; $k++){
$line = pg_fetch_array($GetResul_dr, $k, PGSQL_ASSOC);
//número de columnas
for ($m=0; $m<$GetNumCol_dr; $m++){
list($col_name, $col_value) =each($line);
if ((strtolower($col_name) =='nacionalidad_id') || ( strtolower($col_name)=='pais_id')){
$GetResul_dr = aplica_select('pais','id',$col_value,'',0,'');
$col_value = pg_Result($GetResul_dr,0, 'nombre');
} //del if
//cambia los valores de true o false por: SI y No
if (($col_name=='act_titulado') ||($col_name=='act_trabaja')){
if ( strtolower( $col_value) =='t' ) $col_value="Si";
else $col_value="No";
} //del if variables booleanas
if ($col_name=='sexo') {
if ( strtolower($col_value) =='fe' ) $col_value="Femenino";
else $col_value="Masculino";
} //del if variables booleanas

$get_etiqueta = etiquetas_asp($p_NameTabla,$col_name);
//echo $get_etiqueta ."<BR>";
if ($get_etiqueta ) {
$get_etiqueta = "<strong>".$get_etiqueta."</strong>";
print "\t<tr bgcolor=#CCFFFF>\n";
print "\t\t<TD ALIGN=left width='200'><FONT SIZE=2 FACE='Geneva'>$get_etiqueta : </FONT><TD>";
print "\t\t<TD ALIGN=left width='250'><FONT SIZE=2 FACE='Geneva'> $col_value</FONT></TD>\n";
print "</tr>";
} //del if de las etiquetas
} //del segundo for
} //del primer for
echo "</table>";
} //del la funcion display_rows

// Función principal donde a partir de la cual se manda desplegar la información que contienen la tabla de los //datosb_aspirante y datosb_aspirante' que conforman los datos de los aspirantes

function principal_display($name_tabla,$name_id,$valor_id,$ indice,$t_consulta,$t_ordenar){
$GetResul = 0;
$GetNumReg = 0; $i=0; $j=0;
$GetResul = aplica_select($name_tabla, $name_id,$valor_id,$indice,$t_consulta=0,$t_ordena r);
$GetNumReg = aplica_select($name_tabla, $name_id,$valor_id,$indice,$t_consulta=1,$t_ordena r);
$GetRow = aplica_select($name_tabla, $name_id,$valor_id,$indice,$t_consulta=3,$t_ordena r);
$GetNumCol = aplica_select($name_tabla, $name_id,$valor_id,$indice,$t_consulta=2,$t_ordena r);


//__________________________________________________ ___________________
// obtengo los id de la tabla de los aspirantes y los guardo
// en el arreglo $array_asp[$i]
//__________________________________________________ ___________________
for ($i=0; $i<$GetNumReg; $i++) {
//$line= aplica_select($name_tabla, '','',$i,3);
$line = pg_fetch_array($GetResul, $i, PGSQL_ASSOC);
for ($j=0; $j<$GetNumCol; $j++) {
list($col_name, $col_value) =each($line);
if ($col_name=='id') $array_asp[$i]= $col_value;
} //del segundo for
} //del primer for
/*_________________________________________________ ___________________*/
/* despliega los datos de los aspirantes a partir de los */
/* aspirante_id guadados en el arreglo $array_asp[$i] */
/*_________________________________________________ ____________________*/

for ($w=0; $w<$i; $w++) {
print "<tr >";
echo "<BR/><BR/><TD ><FONT SIZE=3 FACE='Geneva' color=#FF0000 ><strong> <center>No. de Registro: " .($w+1)." </center></strong></FONT></TD>";
print "<tr>";
principal_rows('datosb_aspirante','aspirante_id', $w,$array_asp[$w] );
principal_rows('curriculum_aspirante','aspirante_i d', $w,$array_asp[$w] );
} //del segundo for
echo "<center>[regresar] [imprimir]</center>" ;

}//del la funcion principal_display


// Función que obtiene el nombre de las tablas contenidas en las tablas :datosb_aspirante y datosb_aspirante
function principal_rows($name_tabla,$name_id,$num_elemento, $valor_elemento){

$indice=''; $t_consulta=0; $line='';
$GetResul = aplica_select($name_tabla, $name_id,$valor_id=$valor_elemento,$indice='',$t_c onsulta,$t_ordenar);
$GetNumReg = aplica_select($name_tabla, $name_id,$valor_id=$valor_elemento, $indice='',$t_consulta=1,$t_ordenar);
$GetRow = aplica_select($name_tabla, $name_id,$valor_id=$valor_elemento, $indice='',$t_consulta=3,$t_ordenar);
$GetNumCol = aplica_select($name_tabla, $name_id,$valor_id=$valor_elemento, $indice='',$t_consulta=2,$t_ordenar);
for ($j=0; $j< $GetNumReg; $j++) {
$line = pg_fetch_array($GetResul, $j, PGSQL_ASSOC);
for ($k=0; $k<$GetNumCol ;$k++){
list($col_name, $col_value) =each($line);
// cuida de no repetir los datos personales del aspirante
if (($name_tabla== 'curriculum_aspirante' ) &&($col_name=='aspirante_id'))
$hago_algo=0;
else display_algunas_tablas($col_name, $col_value);
//display_algunas_tablas($col_name, $col_value);
} //del tercer for
} //del segundo for
} //de la función principal_rows

//__________________________________________________ ____________________________________
// función que contiene los encabezados de las tablas de los aspirantes
function display_algunas_tablas($col_name_t, $col_value_t){

/*echo $col_name_t.' - '.$col_value_t.'<br>'; */
switch ($col_name_t) {
case "aspirante_id" :
echo "<BR/><center><strong >Datos personales del aspirante</strong></center>";
call_user_func("display_rows","aspirante", "id",$col_value_t);
break;

case "domicilio_aspirante_id" :
echo "<BR/><center><strong>Domicilio del aspirante</strong></center>";
call_user_func("display_rows","domicilio_aspirante ", "id",$col_value_t);
break;
case "modalidad_id":
echo "<BR/><center><strong>Modalidad del curso aspiranre</strong></center>";
call_user_func("display_rows","modalidad", "id",$col_value_t);
break;
case "titulo_aspirante_id":
echo "<BR/><center><strong>Datos profesionales del aspiranre</strong></center>";
call_user_func("display_rows","titulo_aspirante", "id",$col_value_t);
break;

case "trabajoact_aspirante_id":
echo "<BR/><center><strong>Lugar de trabajo del aspirante</strong></center>";
call_user_func("display_rows","trabajoact_aspirant e", "id",$col_value_t);
break;
case "cfunciones_aspirante_id":
echo "<BR/><center><strong>Actividades Profesionales relacionadas con la Gestión Cultural</strong></center>";
call_user_func("display_rows","cfunciones_aspirant e", "id",$col_value_t);
break;
case "motivosgc_aspirante_id":
echo "<BR/><center><strong>Motivos por los cuales desea ingresar al curso </strong></center>";
call_user_func("display_rows","motivosgc_aspirante ", "id",$col_value_t);
break;
case "proyectof_aspirante_id":
echo "<BR/><center><strong>Descripción del Proyecto final del aspirante </strong></center>";
call_user_func("display_rows","proyectof_aspirante ", "id",$col_value_t);
break;
case "id":
break;
default: echo "<BR/>".$col_name . ":No encontre un encabezado ";
} /*del case*/
}/* de la función display_*/
//_____________________EMPIEZA PROGRAMA_______________________________________//

if ( $enviar && $list_asp ){
//muestro todos los registros
if ($list_asp == (-1)) call_user_func("principal_display", "aspirante", "","","",""," ap_paterno");
//muestro un registro que fue seleccionado anteriormente
else call_user_func ("principal_display", "aspirante", "id" ,$list_asp, "" , "" , "");

}//del if del programa principal


?>

saludos y gracias