optimizacion consultas basadas en vistas

This commit is contained in:
humano 2020-04-22 08:33:21 -05:00
parent ec812e6f85
commit 307bc9bc88

View File

@ -7368,12 +7368,18 @@ return "$echo";
} }
function buscar_imagen($form,$control,$tipo,$empresa) { function buscar_imagen($form,$control,$tipo,$empresa) {
$vista = "form_".$form;
$vista = existe_tabla("$vista") ;
if($vista =='1'){$tabla="form_$form";}else{$tabla="form_datos";}
$imagen=""; $imagen="";
if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";} if($control !="") { $w_control = "AND $tabla.control ='$control'";}else{$w_control ="";}
if ($form ==""){ if ($form ==""){
$consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos $consulta = "SELECT $tabla.id_empresa, contenido , campo_nombre , id_campo FROM form_id, $tabla, form_campos
WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id WHERE $tabla.id_campo = form_campos.id AND form_id.id = $tabla.form_id
AND form_datos.id_empresa = '$empresa' AND $tabla.id_empresa = '$empresa'
AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 "; AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
$link=Conectarse(); $link=Conectarse();
mysqli_set_charset($link, "utf8"); mysqli_set_charset($link, "utf8");
@ -7388,7 +7394,7 @@ if($tipo == "consulta") { return $consulta; }
$publico = remplacetas('form_id','id',"$form",'publico',"") ; $publico = remplacetas('form_id','id',"$form",'publico',"") ;
if($publico[0] !="0" ){ if($publico[0] !="0" ){
$campo_imagen = buscar_campo_tipo("$form","15"); $campo_imagen = buscar_campo_tipo("$form","15");
$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ; $imagen = remplacetas("$tabla",'form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
//$imagen = "$imagen[0]"; //$imagen = "$imagen[0]";
return $imagen[0]; return $imagen[0];
} }
@ -11859,10 +11865,14 @@ $claves = $claves[0];
$key = @explode(':',$claves[1]) ; $key = @explode(':',$claves[1]) ;
$key = @$key[1]; $key = @$key[1];
$descripcion = @explode(':',$claves[2]) ; $descripcion = @explode(':',$claves[2]) ;
$vista = "form_".$formulario;
$vista = existe_tabla("$vista") ;
if($vista =='1'){$tabla="form_$formulario";}else{$tabla="form_datos";}
if(isset($descripcion[1])){$descripcion = $descripcion[1]; if(isset($descripcion[1])){$descripcion = $descripcion[1];
$campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' "); $campo2 = remplacetas("$tabla","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
}else{$campo2[0] ="";} }else{$campo2[0] ="";}
$campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' "); $campo1 = remplacetas("$tabla","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
$imprimir = @"<strong>$campo1[0] $campo2[0]"; $imprimir = @"<strong>$campo1[0] $campo2[0]";
@ -12898,6 +12908,7 @@ function imprime_geojson($id,$id2,$plantilla,$busqueda,$item){
$campo2 = buscar_campo_tipo($id_form2,"14"); $campo2 = buscar_campo_tipo($id_form2,"14");
$id_campo = $campo[0]; $id_campo = $campo[0];
$id_campo2 = $campo2[0]; $id_campo2 = $campo2[0];
$campo_titulo = remplacetas('form_parametrizacion','campo',$id_form,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
$geometria =""; $geometria ="";
$or_2 =""; $or_2 ="";
$w_id2=""; $w_id2="";
@ -12959,7 +12970,7 @@ while( $row = mysqli_fetch_array( $sql ) ) {
$propiedades = array(); $propiedades = array();
$propiedades['icon']['iconUrl']=""; $propiedades['icon']['iconUrl']="";
$identificador = explode(',',$row['data']); $identificador = explode(',',$row['data']);
$localizacion = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$id_campo'") ; $localizacion = remplacetas($tabla,'control',$row['control'],'contenido',"id_campo = '$id_campo'") ;
$identificador = $identificador[0]; $identificador = $identificador[0];
//$campos = explode(" ",$identificador); //$campos = explode(" ",$identificador);
@ -12981,9 +12992,9 @@ while( $row = mysqli_fetch_array( $sql ) ) {
} }
else { else {
$campo_titulo = remplacetas('form_parametrizacion','campo',$id_form,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
$titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
$titulo = remplacetas("$tabla",'id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
$propiedades['description'] ="$titulo[0]"; } $propiedades['description'] ="$titulo[0]"; }
$propiedades['control'] = "$row[control]"; $propiedades['control'] = "$row[control]";
@ -13002,7 +13013,7 @@ while( $row = mysqli_fetch_array( $sql ) ) {
if($propiedades['icon']['iconUrl'] =="") { if($propiedades['icon']['iconUrl'] =="") {
$icono_imagen = buscar_imagen("$id_form",$row['control'],"",""); $icono_imagen = buscar_imagen("$id_form",$row['control'],"","");
//$propiedades[icon][iconUrl] = "$_SESSION[site]/milfs/images/iconos/negro.png"; //$propiedades[icon][iconUrl] = "$_SESSION[site]/milfs/images/iconos/negro.png";
$propiedades['icon']['iconUrl'] = "$_SESSION[url]images/secure/?file=150/$icono_imagen"; $propiedades['icon']['iconUrl'] = "$_SESSION[url]images/secure/?file=150/$icono_imagen&$id_form";
} }
//$propiedades[sounds] =""; //$propiedades[sounds] ="";
@ -13611,7 +13622,11 @@ return $contenido.$control;
function contenido_mostrar($id,$control,$div,$plantilla){ function contenido_mostrar($id,$control,$div,$plantilla){
if($id=="") { if($id=="") {
$value = remplacetas('form_datos','control',$control,'form_id',"") ; $vista = "form_".$id;
$vista = existe_tabla("$vista") ;
if($vista =='1'){$tabla="form_$id";}else{$tabla="form_datos";}
$value = remplacetas("$tabla",'control',$control,'form_id',"") ;
$id= $value[0]; $id= $value[0];
} }
$respuesta = new xajaxResponse('utf-8'); $respuesta = new xajaxResponse('utf-8');
@ -13651,7 +13666,8 @@ function aplicacion_datos($id) {
} }
function buscar_campo_tipo($id,$tipo) { function buscar_campo_tipo($id,$tipo) {
//// esta función retorna el id para un campo de un tipo especifico dentro de un formulario. //// esta función retorna el id para un campo de un tipo especifico dentro de un formulario.
$consulta ="SELECT form_campos.id, form_campos.campo_nombre FROM form_tipo_campo,form_campos,form_contenido_campos $consulta ="SELECT form_campos.id, form_campos.campo_nombre
FROM form_tipo_campo,form_campos,form_contenido_campos
WHERE form_tipo_campo.id_tipo_campo = form_campos.campo_tipo WHERE form_tipo_campo.id_tipo_campo = form_campos.campo_tipo
AND form_contenido_campos.id_campo = form_campos.id AND form_contenido_campos.id_campo = form_campos.id
AND form_tipo_campo.id_tipo_campo = '$tipo' AND form_tipo_campo.id_tipo_campo = '$tipo'
@ -14316,12 +14332,19 @@ $xajax->registerFunction("editar_campo");
//@$impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp).""; //@$impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp)."";
function formulario_imprimir($id,$control,$tipo,$timestamp) { function formulario_imprimir($id,$control,$tipo,$timestamp) {
// if($tabla =='form_datos' ){
$vista = "form_".$id;
$vista = existe_tabla("$vista") ;
if($vista =='1'){$tabla="form_$id";}else{$tabla="form_datos";}
//return $tabla;
// }
$tiene_plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ; $tiene_plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
$tiene_plantilla_original = $tiene_plantilla; $tiene_plantilla_original = $tiene_plantilla;
$tiene_plantilla = $tiene_plantilla[0]; $tiene_plantilla = $tiene_plantilla[0];
$control_existe = remplacetas('form_datos','control',"$control",'id',"") ; $control_existe = remplacetas("$tabla",'control',"$control",'id',"") ;
$contenido_full=""; $contenido_full="";
if(strlen($control) > 32) { if(strlen($control) > 32) {
$identificador_original= $control; $identificador_original= $control;
@ -14331,13 +14354,13 @@ $tiene_plantilla = $tiene_plantilla[0];
$resultado =""; $resultado ="";
$limit =""; $limit ="";
if (@$timestamp != ""){$where_timestamp = "AND form_datos.timestamp = '$timestamp' ";}ELSE { $where_timestamp = ""; } if (@$timestamp != ""){$where_timestamp = "AND $tabla.timestamp = '$timestamp' ";}ELSE { $where_timestamp = ""; }
if(is_numeric($tipo)) { $limit = "limit $tipo "; $class= "alert alert-info";} if(is_numeric($tipo)) { $limit = "limit $tipo "; $class= "alert alert-info";}
//if($control != "") { $w_control = "AND control = '$control' ";} //if($control != "") { $w_control = "AND control = '$control' ";}
$id = mysql_seguridad($id); $id = mysql_seguridad($id);
//$control = mysql_seguridad($control); //$control = mysql_seguridad($control);
if($id =="") { if($id =="") {
$id_seguridad = remplacetas('form_datos','control',$control,'form_id','') ; $id_seguridad = remplacetas("$tabla",'control',$control,'form_id','') ;
$publico = remplacetas('form_id','id',$id_seguridad[0],'publico','') ; $publico = remplacetas('form_id','id',$id_seguridad[0],'publico','') ;
$id_seguridad = $id_seguridad[0]; $id_seguridad = $id_seguridad[0];
@ -14366,18 +14389,19 @@ if(is_numeric($tipo)) { $limit = "limit $tipo "; $class= "alert alert-info";}
//if($id !='') {$w_id = "AND form_id = '$id'";}else {$w_id='';} //if($id !='') {$w_id = "AND form_id = '$id'";}else {$w_id='';}
if($id !='') { if($id !='') {
$consulta = "SELECT * $consulta = "SELECT *
FROM form_contenido_campos , form_datos FROM form_contenido_campos , $tabla
WHERE form_contenido_campos.id_campo = form_datos.id_campo WHERE form_contenido_campos.id_campo = $tabla.id_campo
AND form_datos.control = '$control' AND $tabla.control = '$control'
AND form_contenido_campos.id_form = '$id' AND form_contenido_campos.id_form = '$id'
$where_timestamp $where_timestamp
GROUP BY form_contenido_campos.id_campo,form_datos.orden GROUP BY form_contenido_campos.id_campo,$tabla.orden
ORDER BY form_contenido_campos.orden ASC ORDER BY form_contenido_campos.orden ASC
$limit $limit
"; ";
}else { }else {
$consulta = "SELECT *FROM form_contenido_campos , form_datos WHERE form_datos.control = '$control' AND form_contenido_campos.id_campo = form_datos.id_campo $where_timestamp GROUP BY form_contenido_campos.id_campo,form_datos.orden" ; $consulta = "SELECT *FROM form_contenido_campos , $tabla WHERE $tabla.control = '$control' AND form_contenido_campos.id_campo = $tabla.id_campo $where_timestamp GROUP BY form_contenido_campos.id_campo,$tabla.orden" ;
} }
//return $consulta;
$control = mysql_seguridad($control); $control = mysql_seguridad($control);
$link=Conectarse(); $link=Conectarse();
@ -14640,6 +14664,7 @@ $array_contenido[$campo_nombre[0]][] = $contenido;
} }
$array=$array_contenido; $array=$array_contenido;
//$resultado .=" </div> <!-- <div class='badge pull-right'>Datos registrados el $fecha </div> --> "; //$resultado .=" </div> <!-- <div class='badge pull-right'>Datos registrados el $fecha </div> --> ";
//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; return $resultado;} //}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; return $resultado;}
//if($id=="6" OR $id=="10") { //if($id=="6" OR $id=="10") {
@ -15697,7 +15722,7 @@ if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1"; $consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
$sql=mysqli_query($link,$consulta); $sql=mysqli_query($link,$consulta);
if (@mysqli_num_rows($sql)!=0){ if (@mysqli_num_rows($sql)!=0){
if($por =='contenido' AND $tabla=='form_datos'){ if($por =='contenido' AND $tabla=="$tabla"){
//$resultado[0] = mysqli_result($sql,0,$por); //$resultado[0] = mysqli_result($sql,0,$por);
$resultado[0]=str_replace('\n','<br>',mysqli_result($sql,0,$por)); $resultado[0]=str_replace('\n','<br>',mysqli_result($sql,0,$por));
}else{ }else{
@ -18026,8 +18051,12 @@ AND `control` = '$id_control' $campo_orden
GROUP BY orden GROUP BY orden
ORDER BY timestamp $limite "; ORDER BY timestamp $limite ";
*/ */
$vista = "form_".$perfil;
$vista = existe_tabla("$vista") ;
if($vista =='1'){$tabla="form_$perfil";}else{$tabla="form_datos";}
$consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
FROM `form_datos` FROM `$tabla`
WHERE form_id = '$perfil' WHERE form_id = '$perfil'
AND id_campo ='$id_campo' $valor AND id_campo ='$id_campo' $valor
AND control ='$id_control' $campo_orden AND control ='$id_control' $campo_orden
@ -18054,7 +18083,7 @@ if($cant === 1) {
$identificador=mysqli_result($sql,0,"identificador"); $identificador=mysqli_result($sql,0,"identificador");
$identificador = explode(',',$identificador); $identificador = explode(',',$identificador);
$identificador = $identificador[0]; $identificador = $identificador[0];
$contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ; $contenido_campo = remplacetas("$tabla",'id',$identificador,'contenido',"") ;
$md5_contenido = $contenido_campo[3]; $md5_contenido = $contenido_campo[3];
//$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido, //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
//$md5_contenido = $md5_contenido[0]; //$md5_contenido = $md5_contenido[0];
@ -18064,11 +18093,11 @@ if($cant === 1) {
while( $row = mysqli_fetch_array( $sql ) ) { while( $row = mysqli_fetch_array( $sql ) ) {
$identificador = explode(',',$row['identificador']); $identificador = explode(',',$row['identificador']);
$identificador = $identificador[0]; $identificador = $identificador[0];
$contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ; $contenido_campo = remplacetas("$tabla",'id',$identificador,'contenido',"") ;
$contenido .= "$contenido_campo[0]\n"; $contenido .= "$contenido_campo[0]\n";
$contenido_li .= "<li>$contenido_campo[0]</li>"; $contenido_li .= "<li>$contenido_campo[0]</li>";
$contenido_array[]=$contenido_campo[0]; $contenido_array[]=$contenido_campo[0];
$editable .= "<li>".editar_campo("form_datos","$identificador","contenido","","","","")."</li>"; $editable .= "<li>".editar_campo("$tabla","$identificador","contenido","","","","")."</li>";
} }
} }