Foros del Web » Programando para Internet » PHP »

Resultados de dos Consultas sql

Estas en el tema de Resultados de dos Consultas sql en el foro de PHP en Foros del Web. Hola, detallo un código que funciona bien pero el problema que tengo es que quiero que me imprima los resultados de las dos consultas sql(sql,sql1). ...
  #1 (permalink)  
Antiguo 18/01/2013, 06:54
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Resultados de dos Consultas sql

Hola, detallo un código que funciona bien pero el problema que tengo es que quiero que me imprima los resultados de las dos consultas sql(sql,sql1). Ahora lo que hace es que hace una busqueda en el 1º sql y si no encuentra nada hace el if (mysql_num_rows($query) == 0) y busca en el 2º sql1 . Se puede hacer?

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']; 
     
 
if ( ! empty(
$vte)) { 
    
$sql "SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.localidad
FROM usuarios U,dir_usuarios D 
WHERE  U.id_aviso=D.id_aviso AND U.telefonos='$vte'"
;
}
if ( ! empty(
$ape)) { 
    
$sql "SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.localidad
FROM usuarios U,dir_usuarios D  
WHERE  U.id_aviso=D.id_aviso AND U.apellidos LIKE '%$ape%'"
;
}
if ( ! empty(
$dni)) { 
    
$sql "SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.localidad
FROM usuarios U,dir_usuarios D  
WHERE  U.id_aviso=D.id_aviso AND U.dni LIKE '%$dni%'"
;
}
    
// 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'      => $row['name'], 
            
'apellidos'       => $row['apellidos'], 
            
'localidad'        => $row['localidad']
        ); 
    } 
    
// convertimos el array de datos a formato json 
    
echo json_encode($datos); 
/* Tienes resultados. */ 
} else{ 
/* No hay resultados, hacer la segunda consulta a la otra tabla. */ 
if (mysql_num_rows($query) == 0){ 
if ( ! empty(
$vte)) { 
$sql1 "SELECT telefonos,name,apellidos,id_aviso,localidad FROM  avisos  WHERE telefonos='$vte'"
}
if ( ! empty(
$ape)) { 
$sql1 "SELECT telefonos,name,apellidos,id_aviso,localidad FROM  avisos  WHERE name LIKE '%$ape%'"
}
if ( ! empty(
$dni)) { 
$sql1 "SELECT telefonos,name,apellidos,id_aviso,localidad FROM  avisos  WHERE dni LIKE '%$dni%'"
}
   
// Ordenar por 
    
$vorder $_POST['orderby']; 
     
    if(
$vorder != ''){ 
        
$sql1 .= " ORDER BY ".$vorder
    } 
     
    
$query mysql_query($sql1); 
    
$datos = array(); 
    while(
$row mysql_fetch_array($query)) 
    { 
        
$datos[] = array( 
            
'id_aviso'          => $row['id_aviso'], 
            
'telefonos'          => $row['telefonos'], 
            
'name'      => $row['name'], 
            
'apellidos'       => $row['apellidos'], 
            
'localidad'        => $row['localidad']
        ); 
       } 
    
// convertimos el array de datos a formato json 
    
echo json_encode($datos);  
  } 
 } 

?>
Gracias y un saludo
  #2 (permalink)  
Antiguo 18/01/2013, 07:24
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Resultados de dos Consultas sql

lo que tenes que usar es un OR y te ahorras todo eso

SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.locali dad
FROM usuarios U,dir_usuarios D
WHERE U.id_aviso=D.id_aviso
AND (
(U.dni LIKE '%$dni%')
OR
(U.apellidos LIKE '%$ape%')
OR
( U.telefonos='$vte')
)

SELECT telefonos,name,apellidos,id_aviso,localidad
FROM avisos
WHERE
(
telefonos='$vte' OR name LIKE '%$ape%' OR dni LIKE '%$dni%'
)
  #3 (permalink)  
Antiguo 18/01/2013, 13:22
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Resultados de dos Consultas sql

Cita:
Iniciado por Patriarka Ver Mensaje
lo que tenes que usar es un OR y te ahorras todo eso

SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.locali dad
FROM usuarios U,dir_usuarios D
WHERE U.id_aviso=D.id_aviso
AND (
(U.dni LIKE '%$dni%')
OR
(U.apellidos LIKE '%$ape%')
OR
( U.telefonos='$vte')
)

SELECT telefonos,name,apellidos,id_aviso,localidad
FROM avisos
WHERE
(
telefonos='$vte' OR name LIKE '%$ape%' OR dni LIKE '%$dni%'
)
Gracias, lo he puesto así pero no me encuentra resultados

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']; 
     
$sql ="SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.locali dad 
FROM usuarios U,dir_usuarios D 
WHERE U.id_aviso=D.id_aviso 
AND (
(U.dni LIKE '%$dni%')
OR 
(U.apellidos LIKE '%$ape%')
OR
( U.telefonos='$vte')
)
SELECT telefonos,name,apellidos,id_aviso,localidad 
FROM avisos 
WHERE 
(
telefonos='$vte' OR name LIKE '%$ape%' OR dni LIKE '%$dni%'
)"


    
// 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'      => $row['name'], 
            
'apellidos'       => $row['apellidos'], 
            
'localidad'        => $row['localidad']
        ); 
    } 
    
// convertimos el array de datos a formato json 
    
echo json_encode($datos); 
/* Tienes resultados. */ 
   

 } 

?>

Etiquetas: mysql, resultados, select, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:06.