Cita:
Iniciado por dashtrash No puedes usar UNION ALL.Son 3 queries, no una.No puedes usar UNION ALL ya que cada query retorna un conjunto de columnas diferente.Para usar UNION ALL , cada query tiene que retornar las mismas columnas, en el mismo orden.
Si que puedo, te muestro como lo hago con solo un filtro:
Código PHP:
<?php
include("Connections/conexion.php");
if ($_GET["action"] == "listar")
{
// valores recibidos por POST
$vte = $_POST['telefonos'];
$ape = $_POST['apellidos'];
$name = $_POST['name'];
$dni = $_POST['dni'];
$calle = $_POST['calle'];
$movil = $_POST['movil'];
$loca = $_POST['localidad'];
$sql ="(SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.localidad,D.calle
FROM usuarios U,dir_usuarios D WHERE U.id_aviso=D.id_aviso AND D.calle != ''AND U.telefonos='$vte')
UNION ALL
(SELECT telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
FROM avisos WHERE telefonos='$vte' )
UNION ALL
(SELECT A.id_aviso,A.telefonos,A.name,A.apellidos,B.localidad,B.calle
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND A.telefonos='$vte')";
// Ordenar por
$vorder = $_POST['orderby'];
if($vorder != ''){
$sql .= " ORDER BY ".$vorder;
}
$query = mysql_query($sql);
if (mysql_num_rows($query) > 0) {
$datos = array();
while($row = mysql_fetch_array($query))
{
$datos[] = array(
'id_aviso' => $row['id_aviso'],
'telefonos' => $row['telefonos'],
'name' => utf8_encode($row['name']),
'apellidos' => utf8_encode($row['apellidos']),
'calle' => utf8_encode($row['calle']),
'localidad' => utf8_encode($row['localidad'])
);
}
// convertimos el array de datos a formato json
echo json_encode($datos);
/* Tienes resultados. */
}
}
?>