Foros del Web » Programando para Internet » PHP »

¿como simplifico esto?

Estas en el tema de ¿como simplifico esto? en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/04/2003, 15:43
 
Fecha de Ingreso: diciembre-2002
Ubicación: d.f
Mensajes: 79
Antigüedad: 15 años
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
  #2 (permalink)  
Antiguo 09/04/2003, 16:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Creo que deberias poner el modelo de datos que usas (las tablas y las relaciones por las claves forameas que uses entre ellas .. con sus correspondietnes 1->N, 1->1, N->N o lo que uses como relaciones) .. Con eso y en el foro "Base de datos" te podrían orientar de algun tipo de consulta mas acertada .. por ejemplo usando intersecciones (JOIN y afienes) para hacer sub-consultas en Mysql ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:26.