Ver Mensaje Individual
  #17 (permalink)  
Antiguo 25/02/2013, 09:06
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Listar resultados de tres consultas.

@satjaen: Como te comenté en el Foro de MySQL, para mi te estás complicando innecesariamente.
Por un lado, todas las consultas tienen esta estructura en común (limpié un poco de basura):
Código MySQL:
Ver original
  1.     0 qnum,
  2.     A.id_aviso,
  3.     A.telefonos,
  4.     A.telefonos3,
  5.     A.movil,
  6.     A.dni,
  7.     A.`name`,
  8.     A.apellidos,
  9.     B.localidad,
  10.     B.calle
  11.     clientes A INNER JOIN dir_clientes B  ON A.id_aviso=B.id_aviso
  12.     B.calle != '' AND $condicion
  13.     1 qnum,
  14.     id_aviso,
  15.     telefonos,
  16.     telefonos3,
  17.     movil,
  18.     dni,
  19.     `name`,
  20.     apellidos,
  21.     localidad,
  22.     calle
  23.     avisos
  24.     $condicion
  25.     2 qnum,
  26.     U.id_aviso,
  27.     U.telefonos,
  28.     U.telefonos3,
  29.     U.movil,
  30.     U.dni,
  31.     U.`name`,
  32.     U.apellidos,
  33.     D.localidad,
  34.     D.calle
  35.     usuarios U INNER JOIN dir_usuarios D ON  U.id_aviso=D.id_aviso
  36.     D.calle != ''
  37.     AND  $condicion;

Por otro lado, $condicion en tu ejemplo, puede tener estas formas:
Cita:
telefonos = '$vte'
movil = '$movil'
dni = '$dni'
calle LIKE '%$calle%'
apellidos LIKE '%$ape%'
`name` LIKE '%$name%'
localidad LIKE '%$loca%'
En ese contexto, entonces, lo que deberías hacer es por un lado crear la variable que cargue la condición, y por otro crear la consulta.
Tal vez algo así (no soy muy experto en PHP, por lo que deberás perdonar si hay errores):
Código PHP:
Ver original
  1. <?php
  2.  
  3. include("Connections/conexion.php");
  4. if ($_GET["action"] == "listar") {
  5.     // valores recibidos por POST
  6.     $vte = $_POST['telefonos'];
  7.     $ape = $_POST['apellidos'];
  8.     $name = $_POST['name'];
  9.     $dni = $_POST['dni'];
  10.     $calle = $_POST['calle'];
  11.     $movil = $_POST['movil'];
  12.     $loca = $_POST['localidad'];
  13.     $sql = "SELECT
  14.                0 qnum,
  15.                A.id_aviso,
  16.                A.telefonos,
  17.                A.telefonos3,
  18.                A.movil,
  19.                A.dni,
  20.                A.`name`,
  21.                A.apellidos,
  22.                B.localidad,
  23.                B.calle
  24.            FROM
  25.                clientes A INNER JOIN dir_clientes B  ON A.id_aviso=B.id_aviso
  26.            WHERE
  27.                B.calle != '' AND $condicion
  28.            UNION ALL
  29.            SELECT
  30.                1 qnum,
  31.                id_aviso,
  32.                telefonos,
  33.                telefonos3,
  34.                movil,
  35.                dni,
  36.                `name`,
  37.                apellidos,
  38.                localidad,
  39.                calle
  40.            FROM
  41.                avisos
  42.            WHERE
  43.                $condicion
  44.            UNION ALL
  45.            SELECT
  46.                2 qnum,
  47.                U.id_aviso,
  48.                U.telefonos,
  49.                U.telefonos3,
  50.                U.movil,
  51.                U.dni,
  52.                U.`name`,
  53.                U.apellidos,
  54.                D.localidad,
  55.                D.calle
  56.            FROM
  57.                usuarios U INNER JOIN dir_usuarios D ON  U.id_aviso=D.id_aviso
  58.            WHERE
  59.                D.calle != ''
  60.                AND  $condicion
  61.             $orden;";
  62.     $condicion = "";
  63.     $orden = "";
  64.    
  65.     if (!empty($vte)) {$condicion = "telefonos='$vte')";}
  66.     if(empty ($condicion))
  67.         {$condicion = "movil = '$movil'";}
  68.         else {$condicion .= "AND movil = '$movil'";}
  69.     if(empty ($condicion))
  70.         {$condicion = "calle dni = '$dni'";}
  71.         else {$condicion .= "AND dni = '$dni'";}
  72.     if(empty ($condicion))
  73.         {$condicion = "calle like '%$calle%'";}
  74.         else {$condicion .= "AND calle LIKE '%$calle%'";}
  75.     if(empty ($condicion))
  76.         {$condicion = " apellidos  LIKE '%$ape%'";}
  77.         else {$condicion .= "AND apellidos  LIKE '%$ape%'";}
  78.     if(empty ($condicion))
  79.         {$condicion = "`name` LIKE '%$name%'";}
  80.         else {$condicion .= "AND `name` LIKE '%$name%'";}
  81.     if(empty ($condicion))
  82.         {$condicion = "localidad LIKE '%$loca%'";}
  83.         else {$condicion .= "AND localidad LIKE '%$loca%'";}
  84.    
  85.     // Ordenar por
  86.     $vorder = $_POST['orderby'];
  87.  
  88.     if ($vorder != '') {
  89.         $orden= " ORDER BY " . $vorder;
  90.     }
  91.  
  92.     $query = mysql_query($sql);
  93.     if (mysql_num_rows($query) > 0) {
  94.  
  95.         $datos = array();
  96.  
  97.         while ($row = mysql_fetch_array($query)) {
  98.             $datos[] = array(
  99.                 'id_aviso' => $row['id_aviso'],
  100.                 'telefonos' => $row['telefonos'],
  101.                 'name' => utf8_encode($row['name']),
  102.                 'apellidos' => utf8_encode($row['apellidos']),
  103.                 'calle' => utf8_encode($row['calle']),
  104.                 'localidad' => utf8_encode($row['localidad'])
  105.             );
  106.         }
  107.         // convertimos el array de datos a formato json
  108.         echo json_encode($datos);
  109.         /* Tienes resultados. */
  110.     }
  111. }
  112. ?>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)