Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Agrupamiento

Estas en el tema de Agrupamiento en el foro de Bases de Datos General en Foros del Web. sorry si es un poco clasica la pregunta, digamos que tengo un form en donde una variable se llama TV, dentro de TV existen 4 ...
  #1 (permalink)  
Antiguo 07/07/2005, 21:23
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
Agrupamiento

sorry si es un poco clasica la pregunta, digamos que tengo un form en donde una variable se llama TV, dentro de TV existen 4 opciones, entonces se envian a la tabla los resulados, lo que busco es mostrar (porcentualmente y agrupando) cuantos votos ha recibido A,B,C y D de la variable TV, tenía pensado algo así:


$sql="SELECT * FROM tabla;
$result=mysql_query($sql,$conexio);
$total = mysql_num_rows($result);
$sql2 = "SELECT tv FROM tabla GROUP BY cablemas"
$resultito=mysql_query($sql2);
$totalito = mysql_num_rows($resultito);
$2 = $total % $totalito
echo "$2";

se que tengo algo mal pero estoy un poco cansado y no le encuentro , sorry, si me pueden ayudar gracias.
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #2 (permalink)  
Antiguo 08/07/2005, 03:45
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Escueto:
select count(*) total from tabla -> te da el total de filas. Ya de ir a leerla, pues que te cuente ella misma :P
select tv,count(*) totaltv from tabla group by tv -> te da el total para cada tv, si quieres sólo de una tv en concreto, pued añade la condición "tv=$tv"
Para mostrar los datos, pues un while donde para cada televisión:
totaltv*100/total
Si solo miras los datos de una tv, pues no hace falta el while.
(%, tanto en mysql como en php, es un operador para el cálculo del resto)

Espero que te ayude.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #3 (permalink)  
Antiguo 07/08/2005, 17:48
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
ee

en concreto, pued añade la condición "tv=$tv"
en qué parte?
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #4 (permalink)  
Antiguo 07/08/2005, 17:50
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
Puede que no me expliqué bien, existe una categoria que se llama tv, cuando alguien vota, sólo puede enviar 4 tipo de resultados (los4 se almacenan dentro de la misma categoría o sea "tv"), lo que quiero hacer es que dependiento de estos 4 tipos: sky, cablemas, etc, ver cuantos tiene cada uno
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #5 (permalink)  
Antiguo 07/08/2005, 18:15
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mex
Mensajes: 140
Antigüedad: 21 años, 5 meses
Puntos: 0
Algo asi?
Código PHP:
$SQL="SELECT tv , COUNT(*) FROM Tabla GROUP BY tv"

tv             count(*)  

Categoria1     1
Categoria2     
13
Categoria3     
12
Categoria4     
24 
__________________
escribiendo mi libro de AJAX
  #6 (permalink)  
Antiguo 07/08/2005, 18:28
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
Sí pero cómo le haces para decir que categoría 1 tiene 1 y la dos 13?
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #7 (permalink)  
Antiguo 07/08/2005, 18:45
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mex
Mensajes: 140
Antigüedad: 21 años, 5 meses
Puntos: 0
ahhh pero eso no lo digo yo.
Con la consulta que te muestro MySQL está agrupando por el campo TV y despues por los totales que tienen cada una de las categorias dentro de la tabla TV.

No es que yo lo haya acomodado sino que es MySQL quien devulve este resultado.

Ejecuta la consulta que pegue y verás como sale.
__________________
escribiendo mi libro de AJAX
  #8 (permalink)  
Antiguo 07/08/2005, 18:49
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
hahaha ya se que no eres tu, me refiero a que expresión en SQl debes de utilizar para "imprimir" que categoría uno cuenta con 15 filas y la dos con 13, haces un HAVING o algo por estilo?, eso es lo que estoy buscando tratando de mostrar cuantos "votos" tiene cada categoría
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #9 (permalink)  
Antiguo 07/08/2005, 18:52
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mex
Mensajes: 140
Antigüedad: 21 años, 5 meses
Puntos: 0
Ok parece que ya nos cambiamos de canal.

Con la consulta que puse es suficiente para que agrupar totales por elementos diferentes de una tabla. No hay más, no requiero de un Having ni nada más.


¿Ya los has ejecutado en DB?
__________________
escribiendo mi libro de AJAX
  #10 (permalink)  
Antiguo 07/08/2005, 18:55
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
Sí, mira lo que pasa es que cuando un usuario envia su voto tiene 4 opciones, las 4 se envian a un campo dentro de una tabla este campo es "Tv", las cuatro opciones son sky, cablemas, etc lo que busco es mostrar cuantas filas en la columna TV tiene cablemas y cuantas tiene sky.
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #11 (permalink)  
Antiguo 07/08/2005, 18:58
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
Tu sentencia me envia 2, que significa 2 de 3 votos, los dos votos que me muestran son los de cablemas, pero el que sobra cómo lo muestro?
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #12 (permalink)  
Antiguo 07/08/2005, 18:58
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mex
Mensajes: 140
Antigüedad: 21 años, 5 meses
Puntos: 0
Cita:
Iniciado por WyLY
Sí, mira lo que pasa es que cuando un usuario envia su voto tiene 4 opciones, las 4 se envian a un campo dentro de una tabla este campo es "Tv", las cuatro opciones son sky, cablemas, etc lo que busco es mostrar cuantas filas en la columna TV tiene cablemas y cuantas tiene sky.
Pues para empezar los correcto es que sólo una opción se almacene en el campo cuando el usuario vota, no las cuatro.
Si no es así no hay mucho que hacer con la consulta que expuse.
__________________
escribiendo mi libro de AJAX
  #13 (permalink)  
Antiguo 07/08/2005, 19:04
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
Ya veo, muchisimas gracias efra
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #14 (permalink)  
Antiguo 07/08/2005, 19:07
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mex
Mensajes: 140
Antigüedad: 21 años, 5 meses
Puntos: 0
Ahhh Ok mia estimado.

Mira, al parecer no estas iterando tu recordset.


Te la pongo facil:

Código PHP:
 $SQL="SELECT tv , COUNT(*) FROM Tabla GROUP BY tv";
 
$res mysql_query($SQL,$ConexionBD);
 
$row myql_fetch_array($res);

 echo 
"Televisora | Total<br>";
 do{

    echo 
$row[0]." | ".$row[1]."<br>";

 }while(
$row myql_fetch_array($res));

mysql_free_result($res); 
A esto te refieres?
__________________
escribiendo mi libro de AJAX
  #15 (permalink)  
Antiguo 07/08/2005, 19:33
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
Muchas Gracias

hermano no sé cómo agradecerte. me has salvado de una grande, te lo agradesco muchosimo, ya puedo dormir, en verdad gracias.
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #16 (permalink)  
Antiguo 07/08/2005, 19:46
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mex
Mensajes: 140
Antigüedad: 21 años, 5 meses
Puntos: 0
que va.

Es un gusto.

Saludos.
__________________
escribiendo mi libro de AJAX
  #17 (permalink)  
Antiguo 08/08/2005, 01:35
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Vamos, lo que te puse yo en el primer mensaje
Cita:
Para mostrar los datos, pues un while donde para cada televisión:
totaltv*100/total
Un saludo.
__________________
Estoy contagiado de Generación-I
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 21:14.