Foros del Web » Programando para Internet » PHP »

Suma de resultados de diferentes consultas

Estas en el tema de Suma de resultados de diferentes consultas en el foro de PHP en Foros del Web. Buen dia. Tengo 7 consultas diferentes, y todas obtienen como resultado el nombre de usuario. Mi pregunta es como le puedo hacer para que cuente ...
  #1 (permalink)  
Antiguo 19/01/2010, 18:46
 
Fecha de Ingreso: abril-2008
Mensajes: 65
Antigüedad: 11 años, 7 meses
Puntos: 0
Suma de resultados de diferentes consultas

Buen dia.

Tengo 7 consultas diferentes, y todas obtienen como resultado el nombre de usuario.

Mi pregunta es como le puedo hacer para que cuente las veces que aparece el nombre del usuario en las consultas:

p. ej.
usuario "Pedro" aparece en 3 consultas.
usuario "juan" aparece en 5 consultas.

gracias por su atencion
  #2 (permalink)  
Antiguo 19/01/2010, 21:49
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 9 meses
Puntos: 360
Respuesta: Suma de resultados de diferentes consultas

con count.

Si das un ejemplo y un poco mas de detalles te damos mejjores ayudas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 20/01/2010, 13:54
 
Fecha de Ingreso: abril-2008
Mensajes: 65
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Suma de resultados de diferentes consultas

Gracias por tu respuesta.

Las consultas son para buscar curriculums.

Mira, las consultas que tengo son las siguientes:

Código PHP:
$cons=mysql_query("SELECT usuario FROM datos WHERE  laboral='$lab' and viajar='$viaj'");}
$ctil=mysql_query("SELECT usuario FROM datos WHERE titulo LIKE '%til%'");
$care=mysql_query("SELECT usuario FROM datos WHERE areas LIKE '%are%'");
$cpue=mysql_query("SELECT usuario FROM empleo WHERE puesto LIKE '%pue%'");
$cdespue=mysql_query("SELECT usuario FROM empleo WHERE descripcion LIKE '%despue%'");
$cdesest=mysql_query("SELECT usuario FROM estudios WHERE descripcion LIKE '%desest%'");
$cnomhab=mysql_query("SELECT usuario FROM habilidades WHERE habilidad LIKE '%nomhab%'");
$cdeshab=mysql_query("SELECT usuario FROM habilidades WHERE habilidad LIKE '%deshab%'"); 
Como se ve, todas las consultas obtienen valores de la columna "usuario".
El usuario en este caso es la persona que subio su curriculum en la base de datos.
Las consultas son para seleccionar al usuario que cumpla con los requisitos.
Entonces, mi pregunta es como hacer para que cuente las veces que se repiten nombres de "usuario" en las consultas. p.ej, el usuario "juan" salio en 5 consultas, el usuario "pedro" salio en 2 consultas, etc.

Ojala me haya explicado bien, Tiendo a reborujar mas las cosas.
  #4 (permalink)  
Antiguo 20/01/2010, 14:34
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 9 meses
Puntos: 360
Respuesta: Suma de resultados de diferentes consultas

prueba esto

Código sql:
Ver original
  1. $cons=mysql_query("
  2. select t1.usuario, count(t1.usuario) conteo from
  3. (
  4. SELECT usuario FROM datos WHERE  laboral='$lab' and viajar='$viaj'
  5. UNION ALL
  6. SELECT usuario FROM datos WHERE titulo LIKE '%til%'
  7. UNION ALL
  8. SELECT usuario FROM datos WHERE areas LIKE '%are%'
  9. UNION ALL
  10. SELECT usuario FROM empleo WHERE puesto LIKE '%pue%'
  11. UNION ALL
  12. SELECT usuario FROM empleo WHERE descripcion LIKE '%despue%'
  13. UNION ALL
  14. SELECT usuario FROM estudios WHERE descripcion LIKE '%desest%'
  15. UNION ALL
  16. SELECT usuario FROM habilidades WHERE habilidad LIKE '%nomhab%'
  17. UNION ALL
  18. SELECT usuario FROM habilidades WHERE habilidad LIKE '%deshab%'
  19. ) as t1 group by t1.usuario
  20. ");

Con una sola consulta puedes obtener los datos que creo estas necesitando.

No lo he probado
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 20/01/2010, 15:05
 
Fecha de Ingreso: abril-2008
Mensajes: 65
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Suma de resultados de diferentes consultas

Gracias por tu respuesta.

Creo que si es lo que estoy buscando, pero el detalle es que no puedo insertar ese codigo que pusiste, ya que las consultas en realidad estan condicionadas.

Aqui pongo el codigo completo de las consultas:

Código PHP:
// Aqui pasa los datos de 5 select
$sex=$_POST['sexo'];
$lab=$_POST['laboral'];
$maxi=$_POST['maxiest'];
$reub=$_POST['reubic'];
$viaj=$_POST['viaja'];
//Aqui pasa los datos de 7 input 
$til=$_POST['titulo'];
$are=$_POST['areass'];
$pue=$_POST['puestant'];
$despue=$_POST['descpuest'];
$desest=$_POST['descest'];
$nomhab=$_POST['nomhabili'];
$deshab=$_POST['deschabil'];

//En las sig. 31 consultas, se obtiene el resultado de los 5 selects:
if ($sex=="Indistinto" and $lab=="Indistinto" and $maxi=="Cualquiera" and $reub=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE  indice=1   ");}
if (
$sex!=="Indistinto" and $lab=="Indistinto" and $maxi!=="Cualquiera" and $reub!=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and  maxest='$maxi' and reubicar='$reub' and viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab!=="Indistinto" and $maxi=="Cualquiera" and $reub!=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and laboral='$lab' and  reubicar='$reub' and viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab!=="Indistinto" and $maxi!=="Cualquiera" and $reub=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and laboral='$lab' and maxest='$maxi' and  and viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab!=="Indistinto" and $maxi!=="Cualquiera" and $reub!=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and laboral='$lab' and maxest='$maxi' and reubicar='$reub' ");}
if (
$sex=="Indistinto" and $lab=="Indistinto" and $maxi!=="Cualquiera" and $reub!=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE   maxest='$maxi' and reubicar='$reub' and viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab=="Indistinto" and $maxi=="Cualquiera" and $reub!=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and   reubicar='$reub' and viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab!=="Indistinto" and $maxi=="Cualquiera" and $reub=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and laboral='$lab' and   and viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab!=="Indistinto" and $maxi!=="Cualquiera" and $reub=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and laboral='$lab' and maxest='$maxi'");}
if (
$sex=="Indistinto" and $lab!=="Indistinto" and $maxi=="Cualquiera" and $reub!=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE  laboral='$lab' and  reubicar='$reub' and viajar='$viaj'");}
if (
$sex=="Indistinto" and $lab!=="Indistinto" and $maxi!=="Cualquiera" and $reub=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE  laboral='$lab' and maxest='$maxi' and viajar='$viaj'");}
if (
$sex=="Indistinto" and $lab!=="Indistinto" and $maxi!=="Cualquiera" and $reub!=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE  laboral='$lab' and maxest='$maxi' and reubicar='$reub' ");}
if (
$sex!=="Indistinto" and $lab=="Indistinto" and $maxi!=="Cualquiera" and $reub=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and  maxest='$maxi' and  viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab=="Indistinto" and $maxi!=="Cualquiera" and $reub!=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and  maxest='$maxi' and reubicar='$reub' ");}
if (
$sex!=="Indistinto" and $lab!=="Indistinto" and $maxi=="Cualquiera" and $reub!=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and laboral='$lab' and  reubicar='$reub' ");}
if (
$sex=="Indistinto" and $lab=="Indistinto" and $maxi=="Cualquiera" and $reub!=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE    reubicar='$reub' and viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab=="Indistinto" and $maxi=="Cualquiera" and $reub=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and   viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab!=="Indistinto" and $maxi=="Cualquiera" and $reub=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and laboral='$lab' ");}
if (
$sex=="Indistinto" and $lab!=="Indistinto" and $maxi=="Cualquiera" and $reub!=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE  laboral='$lab' and  reubicar='$reub' ");}
if (
$sex!=="Indistinto" and $lab=="Indistinto" and $maxi!=="Cualquiera" and $reub=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and  maxest='$maxi'");}
if (
$sex!=="Indistinto" and $lab=="Indistinto" and $maxi=="Cualquiera" and $reub=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' ");}
if (
$sex=="Indistinto" and $lab!=="Indistinto" and $maxi=="Cualquiera" and $reub=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE  laboral='$lab'");}
if (
$sex=="Indistinto" and $lab=="Indistinto" and $maxi!=="Cualquiera" and $reub=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE   maxest='$maxi'");}
if (
$sex=="Indistinto" and $lab=="Indistinto" and $maxi=="Cualquiera" and $reub!=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE    reubicar='$reub' ");}
if (
$sex=="Indistinto" and $lab=="Indistinto" and $maxi=="Cualquiera" and $reub=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE     and viajar='$viaj'");}
if (
$sex=="Indistinto" and $lab!=="Indistinto" and $maxi!=="Cualquiera" and $reub!=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE  laboral='$lab' and maxest='$maxi' and reubicar='$reub' and viajar='$viaj'");}
if (
$sex=="Indistinto" and $lab!=="Indistinto" and $maxi!=="Cualquiera" and $reub=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE  laboral='$lab' and maxest='$maxi'");}
if (
$sex=="Indistinto" and $lab=="Indistinto" and $maxi!=="Cualquiera" and $reub!=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE   maxest='$maxi' and reubicar='$reub' ");}
if (
$sex=="Indistinto" and $lab=="Indistinto" and $maxi=="Cualquiera" and $reub!=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE    reubicar='$reub' and viajar='$viaj'");}
if (
$sex!=="Indistinto" and $lab=="Indistinto" and $maxi=="Cualquiera" and $reub!=="Indistinto" and $viaj=="Indistinto") {
$cons=mysql_query("SELECT usuario FROM datos WHERE sexo='$sex' and   reubicar='$reub' ");}
if (
$sex=="Indistinto" and $lab!=="Indistinto" and $maxi=="Cualquiera" and $reub=="Indistinto" and $viaj!=="Indistinto" ) {
$cons=mysql_query("SELECT usuario FROM datos WHERE  laboral='$lab' and viajar='$viaj'");}

//Aqui se obtienen las consultas de los 7 inputs:
if ($til!==""){
    
$ctil=mysql_query("SELECT usuario FROM datos WHERE titulo LIKE '%til%'");
}
if (
$are!==""){
    
$care=mysql_query("SELECT usuario FROM datos WHERE areas LIKE '%are%'");
}
if (
$pue!==""){
    
$cpue=mysql_query("SELECT usuario FROM empleo WHERE puesto LIKE '%pue%'");
}
if (
$despue!==""){
    
$cdespue=mysql_query("SELECT usuario FROM empleo WHERE descripcion LIKE '%despue%'");
}
if (
$desest!==""){
    
$cdesest=mysql_query("SELECT usuario FROM estudios WHERE descripcion LIKE '%desest%'");
}
if (
$nomhab!==""){
    
$cnomhab=mysql_query("SELECT usuario FROM habilidades WHERE habilidad LIKE '%nomhab%'");
}
if (
$deshab!==""){
    
$cdeshab=mysql_query("SELECT usuario FROM habilidades WHERE habilidad LIKE '%deshab%'");

Ya lo ejecute, y si funciona.

Como se ve, las consultas no estan solas, sino que estan dentro de condicionales.
Ahora, entonces, el detalle seria como usar tu codigo dentro de estos condicionales?
  #6 (permalink)  
Antiguo 20/01/2010, 15:08
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 9 meses
Puntos: 360
Respuesta: Suma de resultados de diferentes consultas

Pero esto ya pasa a ser un problema de php y no de mysql.
Te recomiendo tomar la solución que te dí e irte para el foro de php y plantear allí tu problema.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 20/01/2010, 15:17
 
Fecha de Ingreso: abril-2008
Mensajes: 65
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Suma de resultados de diferentes consultas

Muy bien, eso hare, gracias de nuevo..
  #8 (permalink)  
Antiguo 20/01/2010, 16:38
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 6 meses
Puntos: 836
En ese caso, traslado el tema a la sección de PHP.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 21/01/2010, 17:53
 
Fecha de Ingreso: abril-2008
Mensajes: 65
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Suma de resultados de diferentes consultas

Se me ocurre que se pueda hacer mediante arrays, estoy revisando eso.

Etiquetas: diferentes, resultados, suma
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 11:22.