Ver Mensaje Individual
  #19 (permalink)  
Antiguo 25/02/2013, 14:17
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: 16 años, 5 meses
Puntos: 2658
Respuesta: Listar resultados de tres consultas.

Por empezar, ¿capturaste la consulta creada en la variable? ¿La probaste directamente en MySQL?
¿Verificaste la lógica del script? Te dije que no soy muy experto, pero luego de todo, me di cuenta que había al menos un error...
Aprovechemos y verifiquemos la consulta creada al final, antes de enviarla a ejecución:
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.  
  14.     // crear parametros
  15.     $condicion = "";
  16.     $orden = "";
  17.    
  18.     if (!empty($vte)) {$condicion = "telefonos='$vte')";}
  19.     if(empty ($condicion))
  20.         {$condicion = "movil = '$movil'";}
  21.         else {$condicion .= "AND movil = '$movil'";}
  22.     if(empty ($condicion))
  23.         {$condicion = "calle dni = '$dni'";}
  24.         else {$condicion .= "AND dni = '$dni'";}
  25.     if(empty ($condicion))
  26.         {$condicion = "calle like '%$calle%'";}
  27.         else {$condicion .= "AND calle LIKE '%$calle%'";}
  28.     if(empty ($condicion))
  29.         {$condicion = " apellidos  LIKE '%$ape%'";}
  30.         else {$condicion .= "AND apellidos  LIKE '%$ape%'";}
  31.     if(empty ($condicion))
  32.         {$condicion = "`name` LIKE '%$name%'";}
  33.         else {$condicion .= "AND `name` LIKE '%$name%'";}
  34.     if(empty ($condicion))
  35.         {$condicion = "localidad LIKE '%$loca%'";}
  36.         else {$condicion .= "AND localidad LIKE '%$loca%'";}
  37.        
  38.        
  39.    // Ordenar por
  40.     $vorder = $_POST['orderby'];
  41.    
  42.     if($vorder != ''){
  43.         $sql .= " ORDER BY ".$vorder;
  44.     }
  45.      // crear sentencia
  46.     $sql = "SELECT
  47.                0 qnum,
  48.                A.id_aviso,
  49.                A.telefonos,
  50.                A.telefonos3,
  51.                A.movil,
  52.                A.dni,
  53.                A.`name`,
  54.                A.apellidos,
  55.                B.localidad,
  56.                B.calle
  57.            FROM
  58.                clientes A INNER JOIN dir_clientes B  ON A.id_aviso=B.id_aviso
  59.            WHERE
  60.                B.calle != '' AND $condicion
  61.            UNION ALL
  62.            SELECT
  63.                1 qnum,
  64.                id_aviso,
  65.                telefonos,
  66.                telefonos3,
  67.                movil,
  68.                dni,
  69.                `name`,
  70.                apellidos,
  71.                localidad,
  72.                calle
  73.            FROM
  74.                avisos
  75.            WHERE
  76.                $condicion
  77.            UNION ALL
  78.            SELECT
  79.                2 qnum,
  80.                U.id_aviso,
  81.                U.telefonos,
  82.                U.telefonos3,
  83.                U.movil,
  84.                U.dni,
  85.                U.`name`,
  86.                U.apellidos,
  87.                D.localidad,
  88.                D.calle
  89.            FROM
  90.                usuarios U INNER JOIN dir_usuarios D ON  U.id_aviso=D.id_aviso
  91.            WHERE
  92.                D.calle != ''
  93.                AND  $condicion
  94.             $orden;";
  95.  
  96.     // Verificar la sentencia
  97.     echo $sql;
  98.  
  99.     // Ejecutar la sentencia
  100.     $query = mysql_query($sql);
  101.     if (!$sql) {
  102.     die('Consulta no válida: ' . mysql_error());
  103. }
  104.     if (mysql_num_rows($query)>0 ) {
  105.  
  106.          
  107.   $datos = array();
  108.      
  109.     while($row = mysql_fetch_array($query))
  110.     {
  111.           if($row["qnum"]==0) $style="";
  112.           if($row["qnum"]==1)$style="background-color:yellow";
  113.           if($row["qnum"]==2)$style="background-color:orange";
  114.    
  115.    
  116.    
  117.         $datos[] = array(
  118.             'id_aviso'          => $row['id_aviso'],
  119.             'telefonos'          => $row['telefonos'],
  120.             'name'      => utf8_encode($row['name']),
  121.             'apellidos'       => utf8_encode($row['apellidos']),
  122.             'calle'       => utf8_encode($row['calle']),
  123.             'localidad'        => utf8_encode($row['localidad']),
  124.             'style'       =>  $style
  125.            
  126.            
  127.         );
  128.     }
  129.     // convertimos el array de datos a formato json
  130.     echo json_encode($datos);
  131. /* Tienes resultados. */
  132.     }else{
  133. /*No tienes resultados. */
  134.     echo '[]';
  135.         }
  136.   }
  137. ?>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)