Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/07/2008, 03:30
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: contar coincidencias

¿Por qué tienes esa estructura en la base? Me refiero a separar con comas en un campo los datos. Ello te obliga a usar arrays en PHP para operaciones que fácilmente lograrías hacer con la base de datos si tuvieras otra estructura pensada para sacar luego datos como estos. En mi opinión, deberías tener tres tablas

vendedor
-----------------
idvendedor (PK)
nombre


opcion
----------
idopcion (PK)
opcion


ventavendedor
-------------------
idventa(PK)
refidvendedor(FK)
refopcion(FK)

Si la opcion "moto" tiene el idopcion 1
Buscarías esto:

SELECT v.vendedor, o.opcion, COUNT(o.idopcion) FROM tabla vendedor v INNER JOIN ventavendedor vv ON v.idvendedor= vv.refidvendedor INNER JOIN opcion o ON vv.refopcion=o.idpocion WHERE vv.refidopcion = 1 GROUP BY v.idvendedor ORDER BY COUNT(o.idopcion) DESC

No lo he probado, pero creo que es eso.

Si no tienes muy avanzada la base, te diría que pensaras en cambiar la estructura. Con arrays y lo que tienes podría hacerse algo usando funciones específicas de PHP, pero yo no lo considero la mejor opción y en este foro no escribimos código PHP.
Si decides no cambiar tu estructura, dilo y te haremos alguna sugerencia PHP en el foro PHP. Pero, como te digo, la mejor opcion es una estructura parecida a esta que te propongo.

Última edición por jurena; 16/07/2008 a las 13:55