Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2013, 05:03
Avatar de the_sheriff_pino
the_sheriff_pino
 
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 8 meses
Puntos: 0
Combinar consultas dinámicas <Fácil>

Saludos foreros!

Os comento, tengo un pequeño filtro, de dos campos que quiero combinar sus resultados para mostrar los campos de una base de datos de mysql.
(Con un solo campo para filtrar me funciona correctamente)
Cuando escribo en el campo Nombre me filtra por nombre, si escribo en el campo Poblacion, filtra por poblacion y omite el campo Nombre.

El fallo debe de estar en el script de ajax, y sobre todo en la línea donde aparece #resultado.
Código Javascript:
Ver original
  1. <html>
  2.     <head>
  3.         <title>Búsqueda</title>
  4.         <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
  5.         <script type="text/javascript">
  6.             $(document).ready(function() {
  7.                 $("#nombre").keydown(
  8.                     function(event)
  9.                     {
  10.                         var nnombre = $("#nombre").attr("value");
  11.                         $("#resultado").load('busqueda.php',{nombre:nnombre});
  12.                     }
  13.                 );
  14.            
  15.             $(document).ready(function() {
  16.                 $("#nombre").keyup(
  17.                     function(event)
  18.                     {
  19.                         var nnombre = $("#nombre").attr("value");
  20.                         $("#resultado").load('busqueda.php',{nombre:nnombre});
  21.                     }
  22.                 )
  23.                
  24.                 $("#poblacion").keydown(
  25.                     function(event)
  26.                     {
  27.                         var npoblacion = $("#poblacion").attr("value");
  28.                         $("#resultado").load('busqueda.php',{poblacion:npoblacion});
  29.                     }
  30.                 );
  31.                 });
  32.             });
  33.             $(document).ready(function() {
  34.                 $("#poblacion").keyup(
  35.                     function(event)
  36.                     {
  37.                         var npoblacion = $("#poblacion").attr("value");
  38.                         $("#resultado").load('busqueda.php',{poblacion:npoblacion});
  39.                     }
  40.                
  41.                 );
  42.                
  43.             });
  44.         </script>
  45.     </head>
  46.     <body>
  47.         Nombre: <input type="text" name="nombre" id="nombre" autocomplete="off" />
  48.         <br />
  49.         Población: <input type="text" name="poblacion" id="poblacion" autocomplete="off" />
  50.         <br />
  51.         <div id="resultado" style="border: solid black 1px;"></div>
  52.     </body>
  53. </html>

Código PHP:
Ver original
  1. <?php
  2. $link = mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
  3. $bd=mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
  4.  
  5.     $result;
  6.    
  7. function generaClientes()
  8.     {
  9.     $link       =   mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
  10.     $bd         =   mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
  11.  
  12.        
  13.     $nombre     =   $_POST['nombre'];
  14.     //$provincia    =   $_POST['provincia'];
  15.     $poblacion  =   $_POST['poblacion'];
  16.     //$cif      =   $_POST['cif'];
  17.            
  18.            
  19. if ( !empty ($nombre) || !empty ($poblacion) || !empty ($provincia)|| !empty ($cif) ) {
  20.    
  21. $sql= " SELECT * FROM tabla WHERE ";                                                                //Empezar a crear la consulta:
  22.  
  23.     if ( !empty($nombre) && !empty ($poblacion) && !empty ($provincia) && !empty ($cif) ) {        
  24.          $sql .= " Nombre LIKE '%nombre' AND Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%' AND CIF LIKE '%$cif%'" ;  
  25.      }
  26.    
  27.     else if ( !empty($nombre) && !empty ($poblacion) && !empty ($cif) ) {                  
  28.      $sql .= " Nombre LIKE '%nombre' AND Poblacion LIKE '%$poblacion%' AND CIF LIKE '%$cif%'";
  29.     }
  30.     else if ( !empty($nombre) && !empty ($cif) && !empty ($provincia) ) {                      
  31.      $sql .= " Nombre LIKE '%nombre' AND CIF LIKE '%$cif%' AND Provincia LIKE '%$provincia%'";
  32.     }
  33.     else if ( !empty($nombre) &&  !empty ($provincia) ) {  
  34.      $sql .= " Nombre LIKE '%nombre' AND Provincia LIKE '%$provincia%'";
  35.     }
  36.     else if ( !empty($nombre) &&  !empty ($cif) ) {  
  37.      $sql .= " Nombre LIKE '%nombre' AND CIF LIKE '%$cif%'";
  38.     }
  39.     else if ( !empty($nombre) &&  !empty ($poblacion) ) {  
  40.      $sql .= " Nombre LIKE '%nombre' AND Poblacion LIKE '%$poblacion%'";
  41.     }
  42.     else if ( !empty($nombre) ) {
  43.      $sql .= " Nombre LIKE '%$nombre%'";
  44.     }
  45.     else if ( !empty ($poblacion) && !empty ($provincia) && !empty ($cif) ) {          
  46.      $sql .= " Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%' AND CIF LIKE '%$cif%'" ;
  47.     }
  48.     else if ( !empty($poblacion) &&  !empty ($provincia) ) {  
  49.      $sql .= " Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%'";
  50.     }
  51.     else if ( !empty($poblacion) &&  !empty ($cif) ) {  
  52.      $sql .= " Poblacion LIKE '%$poblacion%' AND CIF LIKE '%$cif%'";
  53.     }
  54.     else if ( !empty($poblacion)) {  
  55.      $sql .= " Poblacion LIKE '%$poblacion%'";
  56.     }
  57.     else if ( !empty($cif) &&  !empty ($provincia) ) {  
  58.      $sql .= " CIF LIKE '%$cif%' AND Provincia LIKE '%$provincia%'";
  59.     }
  60.     else if ( !empty ($provincia) ) {  
  61.      $sql .= " Provincia LIKE '%$provincia%'";
  62.     }
  63.     else if ( !empty($cif) ) {  
  64.      $sql .= " CIF LIKE '%$cif%'";
  65.     }
  66. }
  67.         $sql .= "ORDER BY Nombre ASC";
  68.        
  69. $consulta = mysql_query ($sql) ;   //Hacer la consulta. ?>     
  70.    
  71.  
  72.      
  73.     <select name='clientes' size="5px">
  74.  
  75.     <?php
  76.         while($registro=mysql_fetch_assoc($consulta))
  77.             {?>
  78.             <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Poblacion']," ",                                            $registro['Provincia'];  ?></option>
  79.    
  80.         <?php
  81.             }
  82.         ?>
  83.    
  84.    </select>
  85.  
  86.     <?php
  87.         }
  88.     ?> 
  89.  
  90. </form>
  91.  
  92.     <br />
  93.     <br />
  94.         <?php generaClientes(); ?>

Última edición por the_sheriff_pino; 09/05/2013 a las 06:25