Buenos dias!!
Necesito ayuda... Tengo que filtrar varias opciones pero esta estan concatenadas por query y me filtran todos menos la concatenadas, ya q estas les coloco solamente el alias.
Aqui va el Query y codigo que lo acompaña:
....
SELECT DISTINCT
A.SLOT_EQP, B.PORT_TIPO, B.PORT_STATUS, C.SERV_ORDEN, C.SERV_ENLACE, D.CTRAL_NAME, E.PROY_NOMBRE, F.CLI_NOMBRE,
CONCAT(A.SLOT_EQP,'/', B.PORT_EQP) AS SLOT_PORT,
CONCAT(B.PORT_PISO,'/', B.PORT_SALA,'/', B.PORT_FILA,'/',
B.PORT_RACK,'/',B.PORT_SUBRACK,'/', B.PORT_POS) AS POS_DDF
FROM ngn_slot A, ngn_ports B, ngn_servicios C, ngn_centrales D, ngn_proyectos E, ngn_cliente F
WHERE A.SLOT_EQUI_COD ='".$_POST['CONSUL_SERV2']."'
AND B.PORT_SLOT_CODIGO=A.SLOT_CODIGO
AND C.SERV_PORT_COD=B.PORT_CODIGO
AND D.CTRAL_CODIGO=C.SERV_CX_CENTRAL
AND E.PROY_CODIGO=C.SERV_PROY_COD
AND F.CLI_CODIGO=C.SERV_CLI_COD
$filtros=$obj->rows();
if($obj->numRows()>0){
$i1=0; $i2=0; $i3=0; $i4=0; $i5=0; $i6=0; $i7=0; $i8=0; $i9=0; $i10=0;
$eqps=array(); $ports=array(); $tipos=array(); $ddfs=array(); $status=array(); $ordenes=array(); $enlaces=array(); $centrales=array(); $proyectos=array(); $clientes=array();
foreach($filtros as $filtro){
if(in_array($filtro['SLOT_EQP'], $eqps)){}else{ $eqps[$i1]=$filtro['SLOT_EQP']; $i1++; }
if(in_array($filtro['SLOT_PORT'], $ports)){}else{ $ports[$i2]=$filtro['SLOT_PORT']; $i2++; }
if(in_array($filtro['PORT_TIPO'], $tipos)){}else{ $tipos[$i3]=$filtro['PORT_TIPO']; $i3++; }
if(in_array($filtro['POS_DDF'], $ddfs)){}else{ $ddfs[$i4]=$filtro['POS_DDF']; $i4++; }
if(in_array($filtro['PORT_STATUS'], $status)){}else{ $status[$i5]=$filtro['PORT_STATUS']; $i5++; }
if(in_array($filtro['SERV_ORDEN'], $ordenes)){}else{ $ordenes[$i6]=$filtro['SERV_ORDEN']; $i6++; }
if(in_array($filtro['SERV_ENLACE'], $enlaces)){}else{ $enlaces[$i7]=$filtro['SERV_ENLACE']; $i7++; }
if(in_array($filtro['CTRAL_NAME'], $centrales)){}else{ $centrales[$i8]=$filtro['CTRAL_NAME']; $i8++; }
if(in_array($filtro['PROY_NOMBRE'], $proyectos)){}else{ $proyectos[$i9]=$filtro['PROY_NOMBRE']; $i9++; }
if(in_array($filtro['CLI_NOMBRE'], $clientes)){}else{ $clientes[$i10]=$filtro['CLI_NOMBRE']; $i10++; }
}
$i1=0; $i2=0; $i3=0; $i4=0; $i5=0; $i6=0; $i7=0; $i8=0; $i9=0; $i10=0;
foreach($eqps as $eqp){
echo '
window.ftitulo1['.$i1.']="'.$eqp.'";
';
$i1++;
}
foreach($ports as $port){
echo '
window.ftitulo2['.$i2.']="'.$port.'";
';
$i2++;
}
foreach($tipos as $tipo){
echo '
window.ftitulo3['.$i3.']="'.$tipo.'";
';
$i3++;
}
foreach($ddfs as $ddf){
echo '
window.ftitulo4['.$i4.']="'.$ddf.'";
';
$i4++;
}
foreach($status as $statu){
echo '
window.ftitulo5['.$i5.']="'.$statu.'";
';
$i5++;
}
foreach($ordenes as $orden){
echo '
window.ftitulo6['.$i6.']="'.$orden.'";
';
$i6++;
}
foreach($enlaces as $enlace){
echo '
window.ftitulo7['.$i7.']="'.$enlace.'";
';
$i7++;
}
foreach($centrales as $central){
echo '
window.ftitulo8['.$i8.']="'.$central.'";
';
$i8++;
}
foreach($proyectos as $proyecto){
echo '
window.ftitulo9['.$i9.']="'.$proyecto.'";
';
$i9++;
}
foreach($clientes as $cliente){
echo '
window.ftitulo0['.$i10.']="'.$cliente.'";
';
$i10++;
}
}else{
echo 'alert("Sin resultados."); $("#resultadosfiltrarServ").html(""); ';
}
$obj->free();
?>
.....
.....
switch($_POST['filtro']){
case '2': $filtro=" AND f.SLOT_EQP='".$_POST['opciones']."'"; break;
case '3': $filtro=" AND SLOT_PORT='".$_POST['opciones']."'" break;
case '4': $filtro=" AND a.PORT_TIPO='".$_POST['opciones']."'"; break;
case '5': $filtro=" AND POS_DDF='".$_POST['opciones']."'"; break;
case '6': $filtro=" AND a.PORT_STATUS='".$_POST['opciones']."'"; break;
case '7': $filtro=" AND b.SERV_ORDEN='".$_POST['opciones']."'"; break;
case '8': $filtro=" AND b.SERV_ENLACE='".$_POST['opciones']."'"; break;
case '9': $filtro=" AND c.CTRAL_NAME='".$_POST['opciones']."'"; break;
case '10': $filtro=" AND e.PROY_NOMBRE='".$_POST['opciones']."'"; break;
case '11': $filtro=" AND d.CLI_NOMBRE='".$_POST['opciones']."'"; break;
default: $filtro=""; break;
}
NOTA: EL ALIAS SLOT_PORT y POS_DDF NO SON FILTRADOS EN LA TABLA.
SI ALGUIEN ME PUEDE AYUDAR. POR FAVOR!! GRACIAS!!
NOTA: SERÁ QUE TENGO QUE DESCONCATENARLOS Y SI ES ASI COMO SE HACE PARA MANTENERLO EN EL SWITCH Y ME MUESTRE LO QUE NECESITO.