Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/09/2009, 11:23
Avatar de loncho_rojas
loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Filtrar datos de resultados

A continuacion muestro los codigos que ya tengo, y que pueden usarlo de referecia para los aportes... favor, es muy importante.


Formulario de busqueda.html:

Código HTML:
<html>
	<head>

		<title>Buscar Avanzado</title>

		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

	</head>
     <script type="text/javascript">
		function bloqueados(){
				
				document.form1.nombre.disabled = true
				document.form1.ciudad.disabled = true
				document.form1.edad.disabled = true
				}
		
		function bloquea() {
		
			if (document.form1.radio[0].checked) {
				document.form1.nombre.disabled = false
				document.form1.ciudad.disabled = false
				document.form1.edad.disabled = true
		document.form1.edad[document.form1.edad.selectedIndex].value=""
				
			}

			if (document.form1.radio[1].checked) {
			document.form1.nombre.disabled = false
			document.form1.edad.disabled = false
			document.form1.ciudad.disabled = true
	document.form1.ciudad[document.form1.ciudad.selectedIndex].value=""
			}
}
</script>
<!--Cargo la funcion que bloquea todos los campos-->
<body onLoad="bloqueados();">
<p>Seleccione una combinaci&oacute;n.
<p>Obs: Solo puede elegir una de ellas para filtrar los datos
    
   
    
<form name="form1" method="post" action="mostrarResultados.php">
  <table width="558" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td>Combinar solo</td>
            <td>&nbsp;</td>
          <!--llamo la funcion que desbloquea los campos de nombre y ciudad-->
            <td><input name="radio" type="radio" value="" onClick="bloquea()">
            nombre + ciudad            </td>
            <td>&nbsp;</td>
          <!--llamo la funcion que desbloquea los campos de nombre y edad-->
            <td><input name="radio" type="radio" value="" onClick="bloquea()">
              Nombre +Edad</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td width="144" bgcolor="#CCCCCC"><span class="style10">Nombre:</span>
            <input name="nombre" type="text" id="nombre"></td>
            <td width="21" bgcolor="#CCCCCC">&nbsp;</td>
            <td width="187" bgcolor="#CCCCCC">+ Ciudad:
              <select name="ciudad" id="ciudad">
                <option value="0">-- Seleccione un Ciudad --</option>
                <option value="1">Ciudad 1</option>
                <option value="2">Ciudad 2</option>
              </select></td>
            <td width="37" bgcolor="#CCCCCC">&nbsp;</td>
            <td width="158" bgcolor="#CCCCCC">+Edad:
              <select name="edad" id="edad">
                <option value="0">-- Seleccione edad --</option>
                <option value="1">Edad 17</option>
                <option value="2">Edad 18</option>
                <option value="3">Edad 19</option>
                <option value="4">Edad 20</option>
              </select></td>
            <td width="137">&nbsp;</td>
          </tr>
              
          <tr>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td bgcolor="#CCCCCC">&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td width="144" bgcolor="#CCCCCC">&nbsp;</td>
            <td width="21" bgcolor="#CCCCCC">&nbsp;</td>
            <td width="187" bgcolor="#CCCCCC">&nbsp;</td>
            <td width="37" bgcolor="#CCCCCC">&nbsp;</td>
            <td width="158" bgcolor="#CCCCCC"><input name="Submit" type="submit" value="encontrar"></td>
            <td width="137">&nbsp;</td>
          </tr>
  </table>
</form>
      
      </body>
</html> 


mostrarResultados.php:

Código PHP:
<?
include("conn.php");

//recibo los datos
$nombre=addslashes($_POST["nombre"]);
$ciudad=addslashes($_POST["ciudad"]);
$edad=addslashes($_POST["edad"]);


//asigno otra variable a los datos
$buscar1=$nombre;
$buscar2=$ciudad;
$buscar3=$edad;

$error1="Son necesarios 2 parámetros de busqueda. \n Favor inserte otro parametro de busqueda \n
 
<a href='javascript:history.go(-1)'>Atrás</a>"
;

                
                 
$text="Elementos Buscados : ";
                 
                 if(
$buscar1!=""&&$buscar2!="")//si los A y B no estan vacios
                     
{
                         
//genero el filtro
                         
$sqlA=mysql_query("SELECT detalle.* FROM alumnos 
                               INNER JOIN ciudades 
                                ON ciudades.CId = alumnos.AlId 
                                WHERE alumnos.nombreLIKE '$buscar1%' 
                                 OR alumnos.ciudad LIKE '$buscar2%'
                                ORDER BY AlID "
$connection)
                                or die(
mysql_error());      
                         
                         }
                         
                else

                     {
                     
//de lo contrario muestro un mensaje de error definido mas arriba
                         
echo $error1;
                         }
                    
$num=mysql_num_rows($sqlA);
                    
                    
?>

<html>
    <head>

        <title>Selector avanzado</title>

        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    </head>

    <body>
    <table width="775" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
  
          <tr>
            <td><hr size="1" noshade></td>
          </tr>
        
          <tr>
            <td>
                  <table width="750" border="0" align="center" cellpadding="2" cellspacing="2">
                    <tr>
                          <td align="left">
                        <?
                        
echo "<div align=right>$text</div>";
                        echo 
"<table width=700 border=0 cellpadding=0 cellspacing=0 align=center>\n
                        <tr>\n
                            <td> Total coincidencias: $num &nbsp; \n
                            <td> &nbsp;\n
    
                            </tr>\n
                            <tr> \n"
;
                            
//aca puedo mostrar sin drama el resultado del al sentencia
                            //SQL A, pero si tuviera otra sentencia sqlB, como la muestro?
                                
$counter=0;
                                    while(
$row=mysql_fetch_array($sqlA))
                                    {
                                        
$sel=utf8_decode($row['AlId']);
                                        
$name=utf8_decode($row['nombre']);
                                        
$city=utf8_decode($row['ciudad']);
                                        
$year=utf8_decode($row['edad']);
                                        
$ap=utf8_decode($row['dpto'])
    
                                    }
    
    
    
                                    if(
$counter>=0)
                                     {
                                        echo 
"<td valign=top>\n
                                        <table width=340 border=0 align=left class=allborder> \n
                                            <tr> \n
                                                <td width=120> Nombre:  </td>$name\n
                                            </tr>\n
                                            
                                            <tr> \n
                                                <td> Ciudad:  </td> $city\n
                                            </tr>\n
                                            
                                            <tr> \n
                                                <td> Apartamento:  </td> $year\n
                                            </tr>\n
    
                                            <tr> \n
                                                <td> Edad:  </td> $ap\n
                                            </tr>\n
        
                            </tr>\n
                            
                            <tr> \n
                                <td colspan=2 class=topBorder> <a href=viewdetail.php?sn=$sel>Mas Detalles</a>\n
                            </tr>\n
                            </table>\n
                            </td>\n
                                 "
;
                                 
$counter++;
                                 } 
                                 
                                 if(
$counter==2
                                {
                                 echo 
"</tr>\n<tr>\n<td colspn=2>&nbsp; \n</tr>\n<tr>\n";
                                
$counter=0;
                                 }

                        echo 
"</table>\n";
                        
?>
                        </td>
        </tr>
    </table></td>
  </tr>
</table>
</body>
</html>
Se agradece todo aporte, y como dije. y espero se haya entendido..

si alguien conoce otra forma mas sencilla de hacerlo, agradeceria ese aporte tambien, espero ponerlos a pensar, al igual que lo estoy yo.. luego comparto como aporte si llego a la solucion..
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...